Puedo analizar / etc / passwd con augtool:
myuser=bob
usershome=`augtool -L -A --transform "Passwd incl /etc/passwd" print "/files/etc/passwd/$myuser/home" | sed -En 's/\/.* = (.*)/\1/p'`
... pero parece demasiado complicado.
¿Existe alguna herramienta simple y dedicada para mostrar el hogar de los usuarios (como usermod
se puede usar para cambiarlo )?
bash
command-line
scripting
hosts
Adam Ryczkowski
fuente
fuente
Respuestas:
Nunca debe analizar
/etc/passwd
directamente. Es posible que esté en un sistema con usuarios remotos, en cuyo caso no estarán/etc/passwd
. El/etc/passwd
archivo podría estar en otro lugar. Etc.Si necesita acceso directo a la base de datos de usuarios, use
getent
.Sin embargo, también hay otra forma que no implica el análisis:
El
~
operador en el shell se expande al directorio de inicio del usuario especificado. Sin embargo, tenemos que usar eleval
porque la expansión de la variable$user
ocurre después de la expansión de~
. Entonces, al usar laseval
comillas dobles y, se está expandiendo efectivamente$user
primero, luego llamandoeval echo "~phemmer"
.Una vez que tenga el directorio de inicio, simple tachuela
/.ssh
hasta el final.fuente
awk
magia (que nunca entendí realmente)~/.ssh
? ¿Puede eso ser cambiado por una configuración en cualquier lugar o está codificado en ssh?/etc/ssh/ssh_config
ysshd_config
; al menos en Ubuntu 14.04¿Está buscando el directorio de inicio de $ myuser?
puedes usar
para obtener el directorio .ssh.
fuente