Jika aku melakukan
su - -c 'mkdir bin' user1
maka saya mengerti
su: /usr/bin/ksh: No such file or directory
karena shell pengguna diatur ke ksh
dalam /etc/passwd
dan ksh
tidak diinstal.
Pertanyaan
Bagaimana cara menjalankan perintah sebagai pengguna dalam kasus seperti itu?
/etc/passwd
berasal dari NIS.Jawaban:
Jika Anda tidak menaruh
-
setelahnyasu
maka itu tidak akan memuat lingkungan pengguna itu, tetapi perintah masih akan dijalankan sebagai pengguna itu.Tampaknya saya salah mengerti masalah Anda yang sebenarnya. Seperti yang lain katakan
-s
adalah opsi yang mungkin Anda inginkan.sumber
Kamu bisa menggunakan:
The
-s
pilihan untuk su menentukan shell untuk digunakan, mengesampingkan apa yang ada di / etc / passwd.Saya menjatuhkan perintah
-
dari Anda karena, selain memuat profil, itu mungkin akan mengubah direktori kerja ke direktori home pengguna untuk perintah, jadi Anda akan membuat 'bin' di direktori home user1, bukan Anda saat ini direktori.sumber
Saya percaya opsi -s / - shell untuk su memungkinkan Anda memilih shell untuk digunakan sambil menjaga bagian lain dari lingkungan pengguna, / bin / sh ditentukan oleh posix sehingga harus tersedia di mana-mana.
sumber