Requestetty'yi devre dışı bırakmak istiyorum, böylece senaryolarda sudo yapabiliyorum, ama her şeyi yerine sadece tek bir komut için devre dışı bırakmayı tercih ederim. Bu sudoers config içinde mümkün mü?
Requestetty'yi devre dışı bırakmak istiyorum, böylece senaryolarda sudo yapabiliyorum, ama her şeyi yerine sadece tek bir komut için devre dışı bırakmayı tercih ederim. Bu sudoers config içinde mümkün mü?
Yanıtlar:
requiretty
Belirli bir kullanıcı veya belirli bir komut için (veya belirli bir kullanıcı olarak çalıştırılan kullanıcı veya ana bilgisayar için) gibi seçenekler için varsayılan ayarları geçersiz kılabilirsiniz , ancak belirli bir kullanıcı olarak yürütüldüğünde belirli bir komut için yapamazsınız.
Örneğin, varsayarak requiretty
derleme varsayılan seçeneklerinde kümesidir, aşağıdaki sudoers
dosya hem veriyor artbristol
ve bob
yürütmek /path/to/program
bir komut dosyasından root olarak. artbristol
şifre bob
girmemesi gerektiğinde, şifre girmesi gerekir (tahminen tty_tickets
kapalıdır ve bob
şifresini son zamanlarda bazı terminallere girmiştir).
artbristol ALL = (root) NOPASSWD: /path/to/program
bob ALL = (root) /path/to/program
Defaults!/path/to/program !requiretty
Bir komutun ayarını belirli bağımsız değişkenlerle değiştirmek istiyorsanız, bir komut takma adı kullanmanız gerekir (bu bir sözdizimi sınırlamasıdır). Örneğin, aşağıdaki parça bir komut dosyasında artbristol
çalışmasına izin verir /path/to/program --option
, ancak /path/to/program
diğer argümanlarla değil .
Cmnd_Alias MYPROGRAM = /path/to/program --option
artbristol ALL = (root) /path/to/program
artbristol ALL = (root) NOPASSWD: MYPROGRAM
Defaults!MYPROGRAM !requiretty
Bunun gibi bir şey:
myuser ALL=(ALL) NOPASSWD:/usr/local/bin/mycmd
Defaults:myuser !requiretty
/etc/sudoers.d/
dosyaya eklendiğinde işe yaradı . CentOS 7.1
/etc/sudoers.d/
. CentOS 7.5 :(
Bir dosyayı kullanarak benim için iyi çalıştığını buldum /etc/sudoers.d
. Doğrulaması oldukça kolaydır.
İlk /etc/sudoers.d/01build
önce içeriklerle hazırladım :
build ALL=(ALL) NOPASSWD:/bin/date
Defaults:build !requiretty
Sonra çalıştığını test etti:
ssh host sudo -n /bin/date
Mon Nov 16 16:04:27 CST 2015
Sonra çizgiyi değiştirip /etc/sudoers.d/01build
sildim Defaults:
ve ondan sonra alıyorum:
ssh host sudo -n /bin/date
sudo: sorry, you must have a tty to run sudo
/etc/sudoers
ancak bir/etc/sudoers.d/
dosyada iş görünmüyor