Kullanım NOPASSWDyönergesi
Sen kullanabilirsiniz NOPASSWDsizin de yönergesini /etc/sudoersdosyasında .
Kullanıcınız aranıyorsa userve ana makineniz aranıyorsa, aşağıdaki hostsatırları ekleyebilirsiniz /etc/sudoers:
user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot
Bu, kullanıcının bir şifre girmeden useristenen komutları çalıştırmasına izin verecektir host. Diğer tüm sudoed komutları hala bir şifre gerektirecektir.
sudoersDosya sayfasında belirtilen komutlar , man sayfasında açıklandığı şekilde, tamamen kalifiye olmalıdır (yani çalıştırılacak komuta giden mutlak yolu kullanarak) . Göreceli bir yolun sağlanması sözdizimi hatası olarak kabul edilir.sudoers
Komut takip eden bir /karakterle bitiyorsa ve bir dizine işaret ederse, kullanıcı o dizinde herhangi bir komutu çalıştırabilir (ancak içindeki hiçbir alt dizinde değil). Aşağıdaki örnekte, kullanıcı userdizindeki herhangi bir komutu çalıştırabilir /home/someuser/bin/:
user host = (root) NOPASSWD: /home/someuser/bin/
Not: Kendinizi sistemden kilitlemediğinizden emin olmak visudoiçin sudoersdosyayı düzenlemek için her zaman bu komutu kullanın - dosyaya yanlışlıkla yanlış bir şeyler yazmanız durumunda sudoers. visudodeğiştirilen dosyanızı geçici bir yere kaydeder ve değiştirilen dosyanın hatasız ayrıştırılması durumunda sadece gerçek sudoersdosyanın üzerine yazar .
/etc/sudoers.dDeğiştirmek yerine kullanmak/etc/sudoers
/etc/sudoersDosyayı düzenlemeye alternatif olarak , iki satırı /etc/sudoers.dörneğin yeni bir dosyaya ekleyebilirsiniz /etc/sudoers.d/shutdown. Bu, sudohaklardaki farklı değişiklikleri ayırmanın zarif bir yoludur ve ayrıca orijinal sudoersdosyayı daha kolay yükseltme için el değmeden bırakır .
Not: Yine, visudokendinizi sistemden kilitlemediğinizden emin olmak için dosyayı düzenlemek için bu komutu kullanmanız gerekir :
sudo visudo -f /etc/sudoers.d/shutdown
Bu ayrıca otomatik olarak yeni dosyanın sahibinin ve izinlerinin doğru ayarlanmasını sağlar.
Eğer sudoerskarışık
visudoDosyalarınızı düzenlemek için kullanmadıysanız ve ardından yanlışlıkla /etc/sudoersbir dosyayı karıştırdı ya da bir dosyayı karıştırdıysanız, /etc/sudoers.dkilitleneceksiniz sudo.
Çözüm, pkexechangisinin alternatif olduğunu kullanarak dosyaları düzeltmek olabilir sudo.
Düzeltmek için /etc/sudoers:
pkexec visudo
Düzeltmek için /etc/sudoers.d/shutdown:
pkexec visudo -f /etc/sudoers.d/shutdown
Sahiplik ve / veya izinler herhangi bir sudoersdosya için hatalıysa , dosya bu durumda göz ardı edilir, sudobu nedenle kendinizi bu durumda kilitli bulabilirsiniz. Yine, bunu pkexecdüzeltmek için kullanabilirsiniz .
Doğru izinler şöyle olmalıdır:
$ ls -l /etc/sudoers.d/shutdown
-r--r----- 1 root root 86 Jul 16 15:37 /etc/sudoers.d/shutdown
Sahipliği ve izinleripkexec düzeltmek için böyle kullanın :
pkexec chown root:root /etc/sudoers.d/shutdown
pkexec chmod 0440 /etc/sudoers.d/shutdown