Kullanım NOPASSWD
yönergesi
Sen kullanabilirsiniz NOPASSWD
sizin de yönergesini /etc/sudoers
dosyasında .
Kullanıcınız aranıyorsa user
ve ana makineniz aranıyorsa, aşağıdaki host
satırları ekleyebilirsiniz /etc/sudoers
:
user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot
Bu, kullanıcının bir şifre girmeden user
istenen komutları çalıştırmasına izin verecektir host
. Diğer tüm sudo
ed komutları hala bir şifre gerektirecektir.
sudoers
Dosya 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ı user
dizindeki herhangi bir komutu çalıştırabilir /home/someuser/bin/
:
user host = (root) NOPASSWD: /home/someuser/bin/
Not: Kendinizi sistemden kilitlemediğinizden emin olmak visudo
için sudoers
dosyayı düzenlemek için her zaman bu komutu kullanın - dosyaya yanlışlıkla yanlış bir şeyler yazmanız durumunda sudoers
. visudo
değ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 sudoers
dosyanın üzerine yazar .
/etc/sudoers.d
Değiştirmek yerine kullanmak/etc/sudoers
/etc/sudoers
Dosyayı düzenlemeye alternatif olarak , iki satırı /etc/sudoers.d
örneğin yeni bir dosyaya ekleyebilirsiniz /etc/sudoers.d/shutdown
. Bu, sudo
haklardaki farklı değişiklikleri ayırmanın zarif bir yoludur ve ayrıca orijinal sudoers
dosyayı daha kolay yükseltme için el değmeden bırakır .
Not: Yine, visudo
kendinizi 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 sudoers
karışık
visudo
Dosyalarınızı düzenlemek için kullanmadıysanız ve ardından yanlışlıkla /etc/sudoers
bir dosyayı karıştırdı ya da bir dosyayı karıştırdıysanız, /etc/sudoers.d
kilitleneceksiniz sudo
.
Çözüm, pkexec
hangisinin 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 sudoers
dosya için hatalıysa , dosya bu durumda göz ardı edilir, sudo
bu nedenle kendinizi bu durumda kilitli bulabilirsiniz. Yine, bunu pkexec
dü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