Je peux analyser le / etc / passwd avec augtool:
myuser=bob
usershome=`augtool -L -A --transform "Passwd incl /etc/passwd" print "/files/etc/passwd/$myuser/home" | sed -En 's/\/.* = (.*)/\1/p'`
... mais cela semble un peu trop alambiqué.
Existe-t-il un outil simple et dédié pour afficher la maison des utilisateurs (comme usermod
peut être utilisé pour le modifier )?
bash
command-line
scripting
hosts
Adam Ryczkowski
la source
la source
Réponses:
Vous ne devez jamais analyser
/etc/passwd
directement. Vous êtes peut-être sur un système avec des utilisateurs distants, auquel cas ils ne le seront pas/etc/passwd
. Le/etc/passwd
fichier peut être ailleurs. Etc.Si vous avez besoin d'un accès direct à la base de données des utilisateurs, utilisez
getent
.Cependant, il existe également une autre méthode qui n'implique pas l'analyse:
L'
~
opérateur dans le shell se développe dans le répertoire personnel de l'utilisateur spécifié. Cependant, nous devons utiliser leeval
car l'expansion de la variable$user
se produit après l'expansion de~
. Donc, en utilisant leseval
guillemets et les doubles, vous développez efficacement d'$user
abord, puis appelezeval echo "~phemmer"
.Une fois que vous avez le répertoire personnel, il suffit de virer
/.ssh
au bout.la source
awk
magie (que je n'ai jamais vraiment comprise)~/.ssh
? Cela peut-il être modifié par un paramètre de configuration n'importe où ou est-il codé en dur dans ssh?/etc/ssh/ssh_config
etsshd_config
; au moins sur Ubuntu 14.04vous recherchez le répertoire personnel de $ myuser?
vous pouvez utiliser
pour obtenir .ssh dir.
la source