Pada satu mesin tertentu saya sering perlu menjalankan sudo
perintah setiap sekarang dan kemudian. Saya baik-baik saja dengan memasukkan kata sandi pada sudo
sebagian besar kasus.
Namun ada tiga sudo
perintah yang ingin saya jalankan tanpa memasukkan kata sandi :
sudo reboot
sudo shutdown -r now
sudo shutdown -P now
Bagaimana saya bisa mengecualikan perintah ini dari perlindungan kata sandi sudo
?
Jawaban:
Gunakan
NOPASSWD
arahanAnda dapat menggunakan
NOPASSWD
arahan dalam/etc/sudoers
file Anda .Jika pengguna Anda dipanggil
user
dan hosthost
Anda dipanggil, Anda bisa menambahkan baris ini ke/etc/sudoers
:Ini akan memungkinkan pengguna
user
untuk menjalankan perintah yang diinginkanhost
tanpa memasukkan kata sandi. Semuasudo
perintah ed lainnya masih memerlukan kata sandi.Perintah yang ditentukan dalam
sudoers
file harus sepenuhnya memenuhi syarat (yaitu menggunakan jalur absolut ke perintah untuk menjalankan) seperti yang dijelaskan dalamsudoers
halaman manual . Menyediakan jalur relatif dianggap sebagai kesalahan sintaksis.Jika perintah berakhir dengan
/
karakter trailing dan menunjuk ke direktori, pengguna akan dapat menjalankan perintah apa pun di direktori itu (tetapi tidak dalam sub-direktori di dalamnya). Dalam contoh berikut, penggunauser
dapat menjalankan perintah apa pun di direktori/home/someuser/bin/
:Catatan: Selalu gunakan perintah
visudo
untuk mengeditsudoers
file untuk memastikan Anda tidak mengunci diri dari sistem - kalau-kalau Anda tidak sengaja menulis sesuatu yang salah kesudoers
file.visudo
akan menyimpan file Anda yang dimodifikasi ke lokasi sementara dan hanya akan menimpasudoers
file asli jika file yang dimodifikasi dapat diuraikan tanpa kesalahan.Menggunakan
/etc/sudoers.d
alih-alih memodifikasi/etc/sudoers
Sebagai alternatif untuk mengedit
/etc/sudoers
file, Anda bisa menambahkan dua baris ke file baru di/etc/sudoers.d
mis/etc/sudoers.d/shutdown
. Ini adalah cara yang elegan untuk memisahkan berbagai perubahan padasudo
hak dan juga membiarkansudoers
file asli tidak tersentuh untuk peningkatan yang lebih mudah.Catatan: Sekali lagi, Anda harus menggunakan perintah
visudo
untuk mengedit file untuk memastikan Anda tidak mengunci diri dari sistem:Ini juga secara otomatis memastikan bahwa pemilik dan izin file baru diatur dengan benar.
Jika
sudoers
kacauJika Anda tidak menggunakan
visudo
untuk mengedit file Anda dan kemudian secara tidak sengaja mengacaukan/etc/sudoers
atau mengacaukan file/etc/sudoers.d
maka Anda akan dikuncisudo
.Solusinya bisa dengan memperbaiki file menggunakan
pkexec
yang merupakan alternatifsudo
.Untuk memperbaiki
/etc/sudoers
:Untuk memperbaiki
/etc/sudoers.d/shutdown
:Jika kepemilikan dan / atau izin tidak benar untuk
sudoers
file apa pun , file tersebut akan diabaikan olehsudo
sehingga Anda mungkin juga menemukan diri Anda terkunci dalam situasi ini. Sekali lagi, Anda dapat menggunakannyapkexec
untuk memperbaikinya.Izin yang benar harus seperti ini:
Gunakan
pkexec
seperti ini untuk memperbaiki kepemilikan dan izin :sumber
user
tidak dengan cara lain diberikansudo
hak, tidak ada perintah lain yang bisa di-sudo oleh pengguna ini. Lihatlahman sudo
danman sudoers
.mgd ALL=(root) NOPASSWD: /var/root/test
. Saya penggunamgd
danALL
berarti "dari semua host" ./var/root/test
adalah sederhana "Hello World" shell skrip dengan izin:-rwx------ 1 root wheel 27 12 Jun 09:54 /var/root/test
. Saya tidak membuat perubahan lain pada sistem.host
di file sudoers?Maaf tapi ada begitu banyak kebingungan tentang ini dan beberapa jawaban yang sangat rumit, sehingga saya merasa harus menimbang di sini sebelum seseorang salah paham dan melakukan sesuatu yang gila.
Menggunakan visudo !!
Tambahkan baris berikut ke konfigurasi:
Ini memungkinkan perintah, reboot dan shutdown dengan parameter apa saja untuk dieksekusi dari pengguna mana pun.
Tolong susun pertukaran, cukup berikan jawaban singkat yang sederhana.
sumber