Chcę wyłączyć Requtty, aby móc sudo w skryptach, ale wolę wyłączyć go tylko dla jednego polecenia, a nie dla wszystkich. Czy jest to możliwe w konfiguracji sudoers?
Chcę wyłączyć Requtty, aby móc sudo w skryptach, ale wolę wyłączyć go tylko dla jednego polecenia, a nie dla wszystkich. Czy jest to możliwe w konfiguracji sudoers?
Odpowiedzi:
Możesz zastąpić domyślne ustawienie opcji, takich jak requirettydla konkretnego użytkownika lub określonego polecenia (lub określonego użytkownika uruchamianego jako użytkownik lub host), ale nie dla określonego polecenia, gdy jest wykonywane jako określony użytkownik.
Na przykład, zakładając, że requirettyjest ustawiony w opcjach kompilacji domyślnie następujące sudoersplików umożliwia zarówno artbristoli bobwykonać /path/to/programjako root ze skryptu. artbristolnie potrzebuje hasła, ale bobmusi wprowadzić hasło (prawdopodobnie tty_ticketsjest wyłączone i bobostatnio wprowadziło swoje hasło w niektórych terminalach).
artbristol ALL = (root) NOPASSWD: /path/to/program
bob ALL = (root) /path/to/program
Defaults!/path/to/program !requiretty
Jeśli chcesz zmienić ustawienie polecenia z określonymi argumentami, musisz użyć aliasu polecenia (jest to ograniczenie składniowe). Na przykład poniższy fragment pozwala artbristolna uruchomienie /path/to/program --optionw skrypcie, ale nie /path/to/programz innymi argumentami.
Cmnd_Alias MYPROGRAM = /path/to/program --option
artbristol ALL = (root) /path/to/program
artbristol ALL = (root) NOPASSWD: MYPROGRAM
Defaults!MYPROGRAM !requiretty
Coś takiego:
myuser ALL=(ALL) NOPASSWD:/usr/local/bin/mycmd
Defaults:myuser !requiretty
/etc/sudoers.d/pliku. CentOS 7.1
/etc/sudoers.d/. CentOS 7.5 :(
Odkryłem, że działa dobrze dla mnie przy użyciu pliku w /etc/sudoers.d. Jest to dość proste do zweryfikowania.
Najpierw stworzyłem /etc/sudoers.d/01buildz zawartością:
build ALL=(ALL) NOPASSWD:/bin/date
Defaults:build !requiretty
Następnie przetestowałem, że to działa:
ssh host sudo -n /bin/date
Mon Nov 16 16:04:27 CST 2015
Następnie zmodyfikowałem /etc/sudoers.d/01buildi usunąłem Defaults:linię, a następnie otrzymuję:
ssh host sudo -n /bin/date
sudo: sorry, you must have a tty to run sudo
/etc/sudoersale wydaje się, że nie działa w/etc/sudoers.d/pliku