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 usermodse puede usar para cambiarlo )?
bash
command-line
scripting
hosts
Adam Ryczkowski
fuente
fuente

Respuestas:
Nunca debe analizar
/etc/passwddirectamente. Es posible que esté en un sistema con usuarios remotos, en cuyo caso no estarán/etc/passwd. El/etc/passwdarchivo 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 elevalporque la expansión de la variable$userocurre después de la expansión de~. Entonces, al usar lasevalcomillas dobles y, se está expandiendo efectivamente$userprimero, luego llamandoeval echo "~phemmer".Una vez que tenga el directorio de inicio, simple tachuela
/.sshhasta el final.fuente
awkmagia (que nunca entendí realmente)~/.ssh? ¿Puede eso ser cambiado por una configuración en cualquier lugar o está codificado en ssh?/etc/ssh/ssh_configysshd_config; al menos en Ubuntu 14.04¿Está buscando el directorio de inicio de $ myuser?
puedes usar
para obtener el directorio .ssh.
fuente