Saya dapat menguraikan / etc / passwd dengan augtool:
myuser=bob
usershome=`augtool -L -A --transform "Passwd incl /etc/passwd" print "/files/etc/passwd/$myuser/home" | sed -En 's/\/.* = (.*)/\1/p'`
... tapi sepertinya agak terlalu berbelit-belit.
Apakah ada alat sederhana dan berdedikasi untuk menampilkan rumah pengguna (seperti usermod
dapat digunakan untuk mengubahnya )?
bash
command-line
scripting
hosts
Adam Ryczkowski
sumber
sumber
Jawaban:
Anda tidak boleh mengurai
/etc/passwd
secara langsung. Anda mungkin berada di sistem dengan pengguna jarak jauh, dalam hal ini mereka tidak akan masuk/etc/passwd
. The/etc/passwd
File mungkin berada di tempat lain. DllJika Anda memerlukan akses langsung ke basis data pengguna, gunakan
getent
.Namun ada juga cara lain yang tidak melibatkan penguraian:
The
~
operator dalam shell mengembang ke direktori home user tertentu ini. Namun kita harus menggunakaneval
karena perluasan variabel$user
terjadi setelah ekspansi~
. Jadi dengan menggunakaneval
tanda kutip ganda, Anda secara efektif memperluas$user
pertama, lalu meneleponeval echo "~phemmer"
.Setelah Anda memiliki direktori home, tempel sederhana
/.ssh
hingga akhir.sumber
awk
keajaiban (yang saya tidak pernah benar-benar mengerti)~/.ssh
? Apakah itu dapat diubah dengan pengaturan konfigurasi di mana saja atau apakah hardcoded ke ssh?/etc/ssh/ssh_config
dansshd_config
; setidaknya di Ubuntu 14,04Anda mencari dir home $ myuser?
kamu bisa menggunakan
untuk mendapatkan .ssh dir.
sumber