Apakah ada perintah baris tunggal untuk melakukan `su`?
15
Aku bisa melakukan sudengan su <username>dan meminta password saya. Apakah ada parameter kata sandi untuk susehingga saya tidak akan diminta kata sandi?
Jika Anda ingin menulis skrip yang berjalan sebagai pengguna yang berbeda, ini berfungsi, meskipun ia mengeluarkan kata "kata sandi" tanpa baris baru ke standar
su - username <<!
enterpasswordhere
enter commands to run as the new user
!
jika Anda memiliki pengguna bernama fred dengan kata sandi 1234 dan ingin mendapatkan ls direktori home fred sebagai fred, tanpa string kata sandi ditampilkan, akan terlihat seperti
su - fred <<! >/dev/null 2>&1
1234
whoami > /dev/tty
ls > /dev/tty
!
Mendapatkan Kesalahan: su: must be run from a terminal.
Abhishek Kashyap
5
Saya percaya, tidak ada dan itu bukan ide yang bagus. Inilah alasannya:
Jika Anda menulis kata sandi dalam perintah seperti su <username> -p <password>, kata sandi itu akan disimpan dalam teks biasa di riwayat bash Anda. Ini tentu merupakan masalah keamanan besar.
Jika Anda perlu menjalankan perintah dengan su(atau sudo) secara otomatis, tulis sebuah shellscript yang berisi perintah-perintah tersebut tanpa suatau sudodan jalankansu <username> script.sh
@DaiKaixian ya, tetapi tidak disimpan di mana pun dan tidak ada yang bisa membacanya
Wayne_Yux
2
Anda dapat mencoba sesuatu seperti:. echo <passwd> | sudo -S <command-line>Meskipun tidak aman, tetapi berhasil.
Dai Kaixian
1
inti dari jawaban saya adalah, bahwa tidak menyimpan kata sandi dalam perintah. Jadi saya menyarankan untuk tidak melakukan itu
Wayne_Yux
-3
Jika Anda ingin menjalankan beberapa perintah tertentu sebagai pengguna baru, gunakan perintah berikut: sudo -u {username} {command to be executed as the new user}
superuser
sini, superuser.com/questions/67765/…Jawaban:
Jika Anda ingin menulis skrip yang berjalan sebagai pengguna yang berbeda, ini berfungsi, meskipun ia mengeluarkan kata "kata sandi" tanpa baris baru ke standar
jika Anda memiliki pengguna bernama fred dengan kata sandi 1234 dan ingin mendapatkan ls direktori home fred sebagai fred, tanpa string kata sandi ditampilkan, akan terlihat seperti
sumber
su: must be run from a terminal
.Saya percaya, tidak ada dan itu bukan ide yang bagus. Inilah alasannya:
Jika Anda menulis kata sandi dalam perintah seperti
su <username> -p <password>
, kata sandi itu akan disimpan dalam teks biasa di riwayat bash Anda. Ini tentu merupakan masalah keamanan besar.Jika Anda perlu menjalankan perintah dengan
su
(atausudo
) secara otomatis, tulis sebuah shellscript yang berisi perintah-perintah tersebut tanpasu
atausudo
dan jalankansu <username> script.sh
sumber
su root script
masih harus memasukkan passwd.echo <passwd> | sudo -S <command-line>
Meskipun tidak aman, tetapi berhasil.Jika Anda ingin menjalankan beberapa perintah tertentu sebagai pengguna baru, gunakan perintah berikut:
sudo -u {username} {command to be executed as the new user}
sumber