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


45

Нижче я знаю:

Я маю додати цей рядок у sudoersфайл, щоб надати права користувачеві на певну задачу.

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

У цьому випадку я хочу надати цьому користувачеві доступ до перезавантаження 2-х служб (тобто Apacheі MySQL) з усіма правами на встановлення.

Користуючись вищевказаним рядком, я дав йому всі права на встановлення, тепер я повинен ще два рази додати той самий рядок, щоб надати права на послуги? Або я можу просто додати ті команди в одному рядку, розділені комою чи щось таке?

Відповіді:


48

Я вирішив проблему, створивши нову групу з обмеженими правами адміністратора ... ім'я цієї групи 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

Він прекрасно працює в тому випадку, якщо ваша система доменна чи ні.


Ви не повинні ставити речі після #includedirрядка?
hamstar

@hamstar Привіт! Так, ти маєш рацію, ти я вже два роки використовую цей файл конфігурації у своїй компанії, і він працює чудово. Навіть ти, я б також рекомендував, поставити два останні рядки раніше #includedir.
Хріш

3
Або ще краще, помістіть ці два рядки в новий файл під /etc/sudoers.d замість редагування / etc / sudoers.
tgharold

@tgharold Так приятель !! Ви маєте рацію ... це дійсно кращий варіант, ніж те, що я запропонував ... :) Оцініть вашу ідею, спробуйте втілити і в мене.
Хриш

Чи #includedir коментар? Або включення відбувається автоматично, і коментар просто нагадує про це?
HeatfanJohn

12

Схоже, кома - це те, що вам потрібно.

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

Джерело


Я надав права так, як ви це згадали, однак я отримав повідомлення про помилку, як показано нижче. <br/> E: Не вдалося відкрити файл блокування / var / lib / dpkg / lock - відкрити (13: дозвіл відхилено) <br/> E: Не вдається заблокувати каталог адміністрації (/ var / lib / dpkg /), є ти корінь? ... може хтось допоможе в цьому?
Хриш

@Rishee Я спробую, як тільки повернусь додому
Картік T

мій файл sudores містить наведені нижче речі.
Хриш

# Корінь специфікації привілеїв користувача ALL = (ALL: ALL) ALL # Члени групи адміністратора можуть отримати привілеї root% admin ALL = (ALL) ALL # Дозволити членам групи sudo виконувати будь-яку команду% sudo ALL = (ALL: ALL) ВСЕ #includedir /etc/sudoers.d $ sudo nano / etc / sudoers% Domain_Name \\ адміністратори ALL = (ВСІ) ALL% Domain_Name \\ user.name ALL = NOPASSWD: / usr / bin / apt-get install, / і т.д. /init.d/apache2 рестарт
Hrish

2

Що я в кінцевому підсумку робив: (Схоже на те, що ви шукаєте):

## 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, який ви знаєте)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.