Apakah mungkin untuk menelepon dari skrip bash, dijalankan sebagai sudo, skrip lain dengan hak pengguna normal?
Pilihan lain adalah menjalankan perintah tertentu sebagai pengguna normal tetapi keseluruhan skrip akan dijalankan sebagai superuser.
PS Yang ingin saya lakukan adalah mengkustomisasi Launcher dari dalam skrip instalasi yang harus dijalankan sebagai sudo.
sudo -u username command
, lihat jawaban saya di bawah ini. Jadisu -u username -c command
mungkin layak untuk dilihat.Jawaban:
Ada beberapa cara. Jika Anda hanya perlu menjalankan satu perintah tanpa parameter apa pun, Anda dapat menggunakannya
sudo -u <username>
Tetapi jika Anda perlu menjalankan beberapa perintah, perintah dengan parameter atau apa pun dengan spasi kosong di dalamnya, metode itu tidak berfungsi.
Itu juga tidak membantu untuk mengutip perintah seperti
sudo -u otheruser "ls /some/dir"
.Dalam kasus tersebut, Anda dapat dengan mudah beralih pengguna
su
sumber
su
saya uraikan di atas lagi, ia melakukan apa yang seharusnya dilakukan. Apa hasil dariwhoami
di satu sisi dansu otheruser -c "whoami"
di sisi lain? Jika Anda memulai skrip dengan sudo, yang pertama harus memberikan "root", yang kedua nama pengguna yang tidak diistimewakan (dalam contoh, "pengguna lain").