Muszę zezwolić na określone polecenie w oknie Debian Linux dla jednego użytkownika. Próbowałem tego w /etc/sudoers
pliku:
# User privilege specification
zabbix ALL=NOPASSWD: /usr/bin/apt-get --print-uris -qq -y upgrade 2>/dev/null |awk '{print $2}' | wc | awk '{print $1}'
To nie działa zgodnie z oczekiwaniami. Jeśli uruchomię polecenie jako użytkownik zabbix za pomocą sudo, poprosi o hasło (chociaż podałem NOPASSWD
opcję).
Działa to jednak:
# User privilege specification
zabbix ALL=NOPASSWD: /usr/bin/apt-get
Ale ma tę wadę, że wszystkie podkomendy apt-get
są dozwolone. Czy istnieje sposób, w jaki mogę to naprawić, aby zezwolić tylko na określone polecenie?
Prawdopodobnie nie zgadzasz się ze sposobem, w jaki przekierowanie współdziała z sudo. Przekierowanie jest wykonywane u użytkownika wywołującego, a nie użytkownika uprzywilejowanego. Prawdopodobnie łatwiej byłoby ci zawinąć polecenie w skrypt, a następnie pozwolić użytkownikowi zabbix na uruchomienie tego skryptu, np
set sudoers as
Teraz cały skrypt będzie uruchamiany jako uprzywilejowany użytkownik, a nie tylko konkretne polecenie apt-get. Upewnij się jednak, że użytkownik zabbix nie może pisać do skryptu.
źródło