Yorumlarınızı doğru bir şekilde anlarsam, buradaki komut, sudo'nun varsayılan olarak istediği parolayı girme yeteneği olmayan bir bağlantı üzerinden verilmesidir. Ayrıca, birçok işletim sistemi dağıtımında, sudo varsayılan olarak bu programın sahip olamayacağı bir TTY gerektirecektir.
Bununla birlikte, sudo çok ince taneli bir izin yapısına sahip olabilir, bu da bir veya daha fazla kullanıcının parola ve TTY olmadan belirli bir komut vermesine izin vermeyi mümkün kılar. Aşağıda, bunu ihtiyaçlarınıza göre yapılandırmanın üç yolunu göstereceğim. Hangisini seçerseniz seçin, kullanıcı şimdi sudo rndc reload
bir şifre girmek zorunda kalmadan komutu verebilecektir .
(Ayrıca, bu gereksiz olabilir, ama ... lütfen sen yedeğe geri dönmek için söz konum kök açıyorlar gereken bir kabuk tutmaya, düzenlemeden önce Sudoers dosyasının yedek kopyasını oluşturmayı unutmayın ve düzenleyebileceğiniz o kullanarak visudo
yerine sudo vi /etc/sudoers
onları daha iyi olması ve ters daha onlara ihtiyacımız için ... Umarım bu önlemler gereksiz olacaktır. ama!)
1. Herhangi bir talep için TTY'ye ihtiyaç duymuyorsanız
En kolay yolu (varsa) emin hat ile başlayan bu yapmaktır TTY gereksinimleri kurtulmak için Defaults
de /etc/sudoers
kelimesini içermiyor requiretty
bunun yerine içermelidir - !requiretty
. Ancak, bunu yaparsanız, hiçbir sudo komutunun tty gerektirmeyeceği anlamına gelir !
Ayrıca satırı eklemeniz gerekir
rndcuser ALL = (root) NOPASSWD: /path/to/rndc reload, /path/to/dnssec-keygen, /path/to/other/program
2. Bunun dışındaki tüm kullanıcılar için bir TTY'ye gereksinim duymak istiyorsanız
Bu, bu tek kullanıcı için aşağıdaki gibi bir varsayılan ayarlanarak yapılabilir:
Defaults:rndcuser !requiretty
rndcuser ALL = (root) NOPASSWD: /path/to/rndc reload, /path/to/dnssec-keygen, /path/to/other/program
3. Bir TTY'yi bu tek komut dışındaki tüm komutlar için bu tek kullanıcı tarafından sağlamak istiyorsanız
Bu sudoers dosyasının sözdizimi nedeniyle biraz daha karmaşıktır. Komut için bir komut takma adı oluşturmanız ve ardından bu komut takma adı için bir varsayılan ayarlamanız gerekir, örneğin:
Cmnd_Alias RNDC_CMD = /path/to/rndc reload, /path/to/dnssec-keygen, /path/to/other/program
Defaults!RNDC_CMD !requiretty
rndcuser ALL = (root) NOPASSWD: RNDC_CMD
sudo
bunun için gereklidir . İşletmenizin bunun için kullanımına itirazlarınız nelersudo
?