Ini adalah kasus penggunaan khas untuk sudo.
Anda sedang mencampuradukkan sudoyang memungkinkan menjalankan perintah sebagai pengguna lain dan sangat dapat dikonfigurasi (Anda dapat secara selektif menentukan pengguna mana yang dapat menjalankan perintah mana sebagai pengguna mana) dan suyang beralih ke pengguna lain jika Anda mengetahui kata sandi (atau root). suselalu menjalankan shell yang ditulis /etc/passwd, bahkan jika su -cdigunakan. Karena ini sutidak kompatibel dengan /usr/sbin/nologin.
Kamu harus menggunakan
sudo -u secure /home/someuser/secure.script
Seperti yang sudodapat dikonfigurasi, Anda dapat mengontrol siapa yang dapat menggunakan perintah ini dan jika ia perlu memasukkan kata sandi untuk menjalankannya. Anda perlu mengedit /etc/sudoersmenggunakan visudountuk melakukan ini. (Hati-hati saat mengedit / etc / sudoers dan selalu gunakan visudo untuk melakukannya. Sintaksnya tidak sepele dan satu kesalahan dapat mengunci Anda keluar dari akun root Anda.)
Baris dalam sudoer ini memungkinkan siapa pun dalam grup somegroupuntuk menjalankan perintah sebagai secure:
%somegroup ALL=(secure) /home/someuser/secure.script
Ini memungkinkan siapa saja dalam grup somegroupuntuk menjalankan perintah securetanpa memasukkan kata sandi:
%somegroup ALL=(secure) NOPASSWD: /home/someuser/secure.script
Ini memungkinkan user1untuk menjalankan perintah securetanpa memasukkan kata sandi:
user1 ALL=(secure) /home/someuser/secure.script
sudo su, lihat unix.stackexchange.com/questions/218169/…