Parola olmadan belirli sudo komutlarını nasıl çalıştırırım?

186

Belirli bir makinede, her zaman şimdi sudo komutlarını çalıştırmam gerekiyor. Çoğu durumda sudo parola girerek iyiyim.

Ancak üç sudo komutu var Şifreyi girmeden çalıştırmak istiyorum :

  • sudo reboot
  • sudo shutdown -r now
  • sudo shutdown -P now

Bu komutları şifre korumasından sudo 'ye nasıl hariç tutabilirim?

    
sordu Z9iT 03.07.2012 10:31

1 cevap

251

NOPASSWD yönergesini kullan

NOPASSWD dosyasındaki /etc/sudoers yönergesini kullanabilirsiniz. >.

Kullanıcınıza user denir ve sunucunuza host denirse, bu satırları /etc/sudoers 'ye ekleyebilirsiniz:

user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot

Bu, kullanıcının user 'sini bir parola girmeden host ' de istenen komutları çalıştırmasına izin verir. Diğer tüm sudo ed komutları yine de bir parola gerektirecektir.

sudoers dosyasında belirtilen komutlar, sudoers man page . Göreceli bir yol sağlamak bir sözdizimi hatası olarak kabul edilir.

Komut, / karakterinden oluşan bir karakterle biter ve bir dizini işaret ederse, kullanıcı bu dizinde herhangi bir komutu çalıştırabilir (ancak herhangi bir alt dizinde bulunamaz). Aşağıdaki örnekte, user kullanıcısı /home/someuser/bin/ dizinindeki herhangi bir komutu çalıştırabilir:

user host = (root) NOPASSWD: /home/someuser/bin/

Not: Her zaman visudo sudoers dosyasını düzenlemek için kendinizi sistemden kilitlemediğinizden emin olun - sadece sudoers dosyasına yanlış bir şey yazdığınız takdirde. visudo , değiştirilmiş dosyanızı geçici bir konuma kaydedecek ve değiştirilen dosya hata olmadan ayrıştırılabiliyorsa, gerçek sudoers dosyasının üzerine yalnızca yazacaktır.

/etc/sudoers.d değerini değiştirmek yerine /etc/sudoers değerini kullanma

/etc/sudoers dosyasını düzenlemeye alternatif olarak, iki satırı /etc/sudoers.d ör. % Co_de%. Bu, /etc/sudoers.d/shutdown haklarına farklı değişiklikleri ayırmanın ve ayrıca daha kolay yükseltmeler için orijinal sudo dosyasının dokunulmadan bırakılmasının zarif bir yoludur.

Not: Yine komutunu kullanmalısınız. Kendinizi sistemden kilitlemediğinizden emin olmak için dosyayı düzenlemek için sudoers :

sudo visudo -f /etc/sudoers.d/shutdown 

Bu ayrıca otomatik olarak yeni dosyanın sahibinin ve izinlerinin doğru şekilde ayarlanmasını sağlar.

visudo öğesi bozuluyorsa

Dosyalarınızı düzenlemek için sudoers kullanmadıysanız ve yanlışlıkla visudo dosyasını karıştırdıysanız veya /etc/sudoers dosyasında bir dosyayı karıştırdıysanız /etc/sudoers.d 'den kilitleneceksiniz.

Çözüm, dosyaları sudo kullanarak düzeltmek olabilir. pkexec 'ye bir alternatiftir.

sudo değerini düzeltmek için:

pkexec visudo

/etc/sudoers değerini düzeltmek için:

pkexec visudo -f /etc/sudoers.d/shutdown

Sahiplik ve / veya izinler, herhangi bir /etc/sudoers.d/shutdown dosyası için yanlışsa, dosya sudoers tarafından yok sayılır. Bu nedenle, kendinizi bu durumda kilitli bulmuş olabilirsiniz. Bunu düzeltmek için tekrar sudo 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

Sahiplik ve izinler 'i düzeltmek için aşağıdaki gibi pkexec kullanın:

pkexec chown root:root /etc/sudoers.d/shutdown
pkexec chmod 0440 /etc/sudoers.d/shutdown
    
verilen cevap mgd 03.07.2012 10:43

Etiketlerdeki diğer soruları oku