Как предоставить nopasswd доступ к нескольким командам через sudoers?

Ниже я знаю следующее:

Я должен добавить эту строку ниже в файл sudoers, чтобы предоставить пользователю права на выполнение конкретной задачи.

user_name ALL=NOPASSWD: /usr/bin/apt-get install

В этом случае я хочу предоставить этому пользователю доступ для перезапуска 2 служб (т. Е. Apache и MySQL) со всеми правами на установку.

Используя приведенную выше строку, я дал ему все права на установку, теперь мне нужно добавить одну и ту же строку еще два раза, чтобы предоставить права на службы? Или я могу просто добавить эти команды в одну строку, разделенные запятой или чем-то еще?

45
задан 31 March 2014 в 20:45

4 ответа

Похоже, вам нужна запятая.

Cmnd_Alias ​​PRINTING = / usr / sbin / lpc, / usr / bin / lprm
...
user3 ALL = PRINTING

Источник

0
ответ дан 31 March 2014 в 20:45

Я решил проблему, создав новую группу с ограниченными правами администратора ... имя этой группы - LimitedAdmins, после чего я обновил файл sudoers, как показано ниже.

Добавленная строка:

%LimitedAdmins ALL=NOPASSWD: /usr/bin/apt-get*, /etc/init.d/apache2 restart

Это полный файл /etc/sudoers:

# This file MUST be edited with the 'visudo' command as root.    
#   
# Please consider adding local content in /etc/sudoers.d/ instead of directly modifying   his file.   
#   
# See the man page for details on how to write a sudoers file.  
# 
Defaults    env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL  

#includedir /etc/sudoers.d
%domain_name\\administrators ALL=(ALL) ALL
%LimitedAdmins ALL=NOPASSWD: /usr/bin/apt-get*, /etc/init.d/apache2 restart

. Он отлично работает в случае, если ваша система является доменом. или нет.

0
ответ дан 31 March 2014 в 20:45

То, что я закончил, было (похоже на то, что вы ищете):

## PRTG monitoring
Cmnd_Alias PRTG = /bin/cat /proc/loadavg, /bin/df, /var/prtg/scripts/check_proc.sh
prtg ALL = NOPASSWD: PRTG

Внутри: /etc/sudoers.d/666-prtg

(666, потому что ... хорошо ... prtg - это инструмент мониторинга на основе Windows, который вы знаете)

0
ответ дан 31 March 2014 в 20:45

FWIW, мне было интересно то же самое, что и OP, и похоже, что вы также можете просто дублировать строки, например

user_name ALL=NOPASSWD: cmd1
user_name ALL=NOPASSWD: cmd2
user_name ALL=NOPASSWD: cmd3
3
ответ дан 23 March 2020 в 08:09

Другие вопросы по тегам:

Похожие вопросы: