3

Я пытался настроить белый список команд, которые пользователь может запускать в моей системе. Сервер, который я использую, работает под управлением CentOS 7. Какой синтаксис следует использовать, чтобы разрешить пользователю выполнять только определенную группу команд и аргументов как sudo? Я также хотел бы, чтобы sudo не требовало ввода пароля при вызове этих команд.

Я пробовал:

  1. пользователь ALL =/bin/cmd1 arg1 arg2, /bin/cmd2 arg1 arg2, /bin/cmd3 arg1 arg2 NOPASSWD: ALL

  2. пользователь ALL =(пользователь: группа) /bin/cmd1 arg1 arg2, /bin/cmd2 arg1 arg2, /bin/cmd3 arg1 arg2 NOPASSWD: ALL

  3. пользователь ALL =(пользователь) /bin/cmd1 arg1 arg2, /bin/cmd2 arg1 arg2, /bin/cmd3 arg1 arg2 NOPASSWD: ALL

  4. пользователь ALL =(/bin/cmd1 arg1 arg2, /bin/cmd2 arg1 arg2, /bin/cmd3 arg1 arg2) NOPASSWD: ALL

Все эти попытки привели к синтаксической ошибке в файле /etc /sudoers.

Я посмотрел на этот вопрос: как запретить пользователям sudo запускать определенные команды? а также прочтите это руководство: https://www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file-on-ubuntu-and-centos. Кажется, вопрос указывает на то, что первая попытка должна была сработать, в то время как в руководстве, похоже, указывалось, что вторая попытка должна была сработать. Так что же работает?

1 ответ1

2

Попробуйте добавить что-то вроде этого:

user ALL = (root) NOPASSWD: /bin/cmd1 args, /bin/cmd2 args

На приведенной выше строке:

  • пользователь - это пользователь, которому нужен доступ к командам
  • Аргументы /bin /cmd1, команды /bin /cmd2 - это команды
  • root - пользователь, под которым будут выполняться команды

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .