Saya ingin menonaktifkan keharusan kecil sehingga saya bisa sudo dalam skrip, tapi saya lebih suka hanya menonaktifkannya untuk satu perintah daripada segalanya. Apakah itu mungkin dalam konfigurasi sudoers?
Anda dapat mengganti pengaturan default untuk opsi seperti requiretty
untuk pengguna tertentu atau untuk perintah tertentu (atau untuk run-as-user atau host tertentu), tetapi tidak untuk perintah tertentu ketika dijalankan sebagai pengguna tertentu.
Sebagai contoh, dengan asumsi yang requiretty
diatur dalam opsi kompilasi-default, sudoers
file berikut ini memungkinkan keduanya artbristol
dan bob
mengeksekusi /path/to/program
sebagai root dari skrip. artbristol
tidak memerlukan kata sandi padahal bob
harus memasukkan kata sandi (mungkin tty_tickets
mati dan bob
memasukkan kata sandinya pada beberapa terminal baru-baru ini).
artbristol ALL = (root) NOPASSWD: /path/to/program
bob ALL = (root) /path/to/program
Defaults!/path/to/program !requiretty
Jika Anda ingin mengubah pengaturan untuk perintah dengan argumen tertentu, Anda harus menggunakan alias perintah (ini adalah batasan sintaksis). Sebagai contoh, fragmen berikut memungkinkan artbristol
untuk dijalankan /path/to/program --option
dalam skrip, tetapi tidak /path/to/program
dengan argumen lain.
Cmnd_Alias MYPROGRAM = /path/to/program --option
artbristol ALL = (root) /path/to/program
artbristol ALL = (root) NOPASSWD: MYPROGRAM
Defaults!MYPROGRAM !requiretty
Sesuatu seperti ini:
myuser ALL=(ALL) NOPASSWD:/usr/local/bin/mycmd
Defaults:myuser !requiretty
/etc/sudoers
tetapi tampaknya tidak berfungsi dalam/etc/sudoers.d/
file/etc/sudoers.d/
file. CentOS 7.1/etc/sudoers.d/
. CentOS 7.5 :(Saya menemukan hasil yang baik bagi saya menggunakan file di
/etc/sudoers.d
. Cukup sederhana untuk memverifikasi.Pertama, saya buat
/etc/sudoers.d/01build
dengan isinya:Kemudian diuji apakah itu berhasil:
Kemudian saya memodifikasi
/etc/sudoers.d/01build
dan menghapusDefaults:
baris, dan setelah itu, saya mendapatkan:sumber