Чи можна надати sudo доступ лише до певної команди?


24

Передумови: У мене є машина розробки з налаштуванням LAMP. Декілька розробників час від часу зверталися до машини. Кожен раз, коли вони вносять якісь зміни у файл конфігурації, їм потрібно буде перезапустити сервер apache, використовуючи sudo service apache restartабоsudo /etc/init.d/apache2 restart

Питання:

Що я хочу зараз, це те, що кожен розробник, який має доступ до машини, не має доступу до всього. Швидше, він / вона повинна мати можливість виконувати serviceкоманду лише за допомогою sudo та нічого іншого. Чи можна це зробити?

Відповіді:


35

Так.

Створіть нову групу в Інтернеті (називайте її бажаним)

sudo addgroup web

Додайте розробників до веб-групи (використовуйте їх ім’я для входу).

sudo adduser your_developer_user web

Потім запустіть sudo visudo -f /etc/sudoers.d/somefile(використовуйте значущу назву замість somefile).

Додайте в рядок (використовуйте повний шлях команди):

%web ALL=(ALL) /usr/bin/service apache2 *

Потім розробники можуть працювати

sudo service apache

використовуючи свій пароль для входу.

НЕ додайте свого адміністратора до веб-групи.

Щоб отримати додаткову інформацію, дивіться чоловічі судовики


1
@Ankit: таким чином користувачі webгрупи можуть запустити / зупинити будь-яку послугу, і це не те, що ви хочете, я думаю. Рішенням має бути введення точної команди (також з параметрами) /etc/sudoers.
enzotib

@enzotib чи можу я це зробити, я маю на увазі, щоб нова команда була б /usr/bin/service apache2?
Анкіт

3
@Ankit:/usr/bin/service apache2 *
enzotib

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