sudo belirli komutlar üzerinde çalışmıyor


15

sudoDebian 8 ile ilgili oldukça garip bir sorun var . Kullanıcılar bazı komutları çalıştıramazsınız /etc/sudoers.d. Şef'i yapılandırmaları dağıtmak için kullanıyorum, böylece tüm dosyalar otomatik olarak oluşturuluyor.

Misal:

Bu yapılandırma iyi çalışıyor

root@server:~# cat /etc/sudoers.d/nginx 
# This file is managed by Chef.
# Do NOT modify this file directly.

user  ALL=(root) NOPASSWD:/usr/sbin/nginx

Ve bu başarısız olur:

root@server:~# cat /etc/sudoers.d/update-rc.d 
# This file is managed by Chef.
# Do NOT modify this file directly.

user  ALL=(root) NOPASSWD:/usr/sbin/update-rc.d

user@www42:~$ sudo update-rc.d 
[sudo] password for user: 
Sorry, user user is not allowed to execute '/usr/sbin/update-rc.d' as root on server.

Ne yanlış olabilir?

Teşhis:

Mar  5 12:12:51 server sudo:    user : command not allowed ; TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/usr/sbin/update-rc.d
Mar  5 12:14:25 www42 su[1209]: pam_unix(su:session): session closed for user user

root@server:~# sudo --version
Sudo version 1.8.10p3
Configure options: --prefix=/usr -v --with-all-insults --with-pam --with-fqdn --with-logging=syslog --with-logfac=authpriv --with-env-editor --with-editor=/usr/bin/editor --with-timeout=15 --with-password-timeout=0 --with-passprompt=[sudo] password for %p:  --disable-root-mailer --with-sendmail=/usr/sbin/sendmail --with-rundir=/var/lib/sudo --mandir=/usr/share/man --libexecdir=/usr/lib/sudo --with-sssd --with-sssd-lib=/usr/lib/x86_64-linux-gnu --with-selinux --with-linux-audit
Sudoers policy plugin version 1.8.10p3
Sudoers file grammar version 43

Yanıtlar:


28

Sorun nokta update-rc.d(inç /etc/sudoers.d/update-rc.d); from man sudo:

#İncludedir yönergesi, sistem paketi yöneticisinin sudoers kurallarını paket kurulumunun bir parçası olarak bırakabileceği bir sudo.d dizini oluşturmak için kullanılabilir. Örneğin, verilenler:

#includedir /etc/sudoers.d

sudo, ~ etc/sudoers.d içindeki her dosyayı ~ ile biten veya a ile biten dosya adlarını atlayarak okuyacaktır . karakter yöneticisi veya editör geçici / yedek dosyaları ile sorunlara neden önlemek için.


3
Sudo'larda 2 şüpheli tasarım kararı. #Dosya olarak yok saymanın yanı sıra yorum olarak ve yönergenin bir parçası olarak kullanma . İlginçtir (rahatsız edici bir şekilde) visudo -f some.file , çıkarken göz ardı edileceği konusunda uyarmaz. Querulous albatros basit bir upvote ile sakinleştirilebilir.
user9517

1
@istheEnglishway tamamen katılıyorum. Ancak, querulous albatross hala querulous.
MadHatter

Kesinlikle beri ~ (veya bazı uzantılı gerçekten olanları) ile dosya yok sayarak, aslında çok iyi bir fikirdir yok düzenledikten sonra bir yedek dosyada eski yapılandırma aktif istiyoruz. Ve muhtemelen bu makinedeki düzenleyicinin bir yedek dosya bırakıp bırakmadığını manuel olarak kontrol etmek istemezsiniz. Tabii ki, bu sadece beyaz listeye alınmış bir uzantıya (örneğin *.cf) sahip dosyalar dahil edilerek yapılabilir, ancak daha sonra özellik daha sonra eklenmiş olabilir ve bazı kullanıcılar yine de bir set uzantısını kullanmaya zorlanmaktan şikayet edebilirler.
ilkkachu

Hem açıklamalarda hem de direktiflerde kullanılan karma işaretine gelince, geriye dönük uyumluluğun bunun arkasındaki neden olup olmadığını kontrol eden herkes?
ilkkachu

5

sudo -llKullanıcıya uygulanabilen komutların / yapılandırmaların bir listesini almaya çalışın .

Update-rc.d yan tümceniz görünmüyorsa, şef tariflerinizi birkaç kullanıcı yerine tek bir sudoers.d dosyası dağıtacak şekilde ayarlamayı düşünebilirsiniz.

Grupla ilişkili sudoers dosyasının garanti edilip edilemeyeceğini de düşünebilirsiniz.

Bu sorunun yanıtları yardımcı olabilir: /ubuntu/246455/how-to-give-nopasswd-access-to-multiple-commands-via-sudoers

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.