Мне нужно разрешить определенную команду в окне Debian Linux для одного пользователя. Я пробовал это в /etc/sudoers
файле:
# 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}'
Это не работает, как ожидалось. Если я запускаю команду как пользователь zabbix с sudo, она запрашивает пароль (хотя я указал эту NOPASSWD
опцию).
Тем не менее, это работает:
# User privilege specification
zabbix ALL=NOPASSWD: /usr/bin/apt-get
Но имеет тот недостаток, что все подкоманды apt-get
разрешены. Есть ли способ, как я могу это исправить, чтобы разрешить только определенную команду?
Вы, вероятно, недовольны тем, как перенаправление взаимодействует с sudo. Перенаправление выполняется у вызывающего пользователя, а не привилегированного пользователя. Возможно, вам будет проще заключить команду в сценарий, а затем разрешить пользователю zabbix запускать этот сценарий, например:
набор sudoers как
Теперь весь сценарий будет запускаться от имени привилегированного пользователя, а не только от конкретной команды apt-get. Убедитесь, что пользователь zabbix не может писать в скрипт.
источник