Назад | Перейти на главную страницу

Несколько типов sudo для одного пользователя

У меня есть ситуация, когда я хочу, чтобы основной пользователь-администратор (с sudo для всех) имел sudo без пароля в качестве другого пользователя для одной команды. Насколько мне известно, это должно дать следующее в / etc / sudoers:

ramo   ALL=(otherUser) NOPASSWD: /usr/bin/command
ramo   ALL=(ALL) ALL

Но похоже, что эти две строки конфликтуют, или вторая перезаписывает первую. Есть идеи, как этого добиться?

Ура

Рамо

РЕДАКТИРОВАТЬ: Оказывается, я немного неправильно понял, как работает sudo при указании пользователя. У меня создалось впечатление, что если у вас есть ALL = (otherUser), вам не нужно «sudo -u otherUser», а можно просто sudo. Это не так.

Порядок важен, а поведение описано на странице руководства sudoers (5):

Когда для пользователя совпадают несколько записей, они применяются по порядку. Если есть несколько совпадений, используется последнее совпадение (которое не обязательно является самым точным совпадением).

С вашими исходными правилами "(ВСЕ) ВСЕ" является последним совпадением, поэтому sudo запрашивает пароль.

Следующие файлы / etc / sudoers работают:

ramo   ALL=(ALL) ALL
ramo   ALL=(otherUser) NOPASSWD: /bin/whoami

например.:

$ sudo -k /bin/whoami
[sudo] password for ramo: 
root
$ sudo -k -u otherUser /bin/whoami
otherUser
$ sudo -k -u otherUser /bin/true
[sudo] password for ramo:
$ sudo -k /bin/true
[sudo] password for ramo:

Протестировано на Fedora 19 с sudo-1.8.6p7-1

Я думаю, что можно отрицать с помощью '!'. Попробуйте вторую строку

ramo ALL=(ALL) !/usr/bin/command