Відповіді:
Коротка відповідь:
Використовуючи visudo
, додайте у файл sudoers наступне, замінивши ім'я користувача на власне ім’я користувача:
username ALL = /etc/init.d/apache2
Якщо вам не потрібно вводити пароль, перш ніж це зробити, використовуйте наступне:
username ALL = NOPASSWD: /etc/init.d/apache2
Після цього користувач 'ім'я користувача' може виконати sudo /etc/init.d/apache2 start
(або зупинити, перезапустити тощо)
Довга відповідь: Ви, швидше за все, захочете встановити окремого користувача для цього, якщо цього ще не зробили, а потім налаштуйте файл / etc / sudoers, щоб дозволити користувачеві або групі виконувати потрібну команду.
Наприклад, щоб дозволити користувачеві "ben" виконувати всі команди як кореневий запит на пароль, ви зробите наступне:
ben ALL= ALL
Щоб дозволити 'ben' виконувати лише одну команду (наприклад, скажімо, rm
), ви зробите наступне:
ben ALL= /bin/rm
Якщо ви користуєтеся сценарієм як користувач і не хочете запитувати пароль, вам потрібно скористатися параметром "NOPASSWD", наприклад:
ben ALL=NOPASSWD: /bin/commandname options
Ви можете зробити те ж саме для груп, поставивши назви груп зі знаком відсотка, наприклад:
%supportstaff ALL= NOPASSWD: /bin/commandname
visudo
команда виконує перевірку безпеки на ваші зміни , щоб не порушувати sudo
/ su
команду випадково: unix.stackexchange.com/a/27595/61349
Коротка відповідь: судо.
Виклик виглядатиме так: sudo /etc/init.d/apache2 restart
Найпростіше це використовувати visudo
для налаштування файлу / etc / sudoers. Див man sudoers
і man visudo
для деталей.
Ви також можете досягти цього, написавши обгортку до apache2ctl, призначивши власність групи групі веб-адміністрування та встановивши біт suid. Це менш загальне рішення, ніж візуальне, але дозволяє користувацькі обмеження у можливостях користувача та перевірку помилок.
Я написав цей інструмент для власних потреб і поділився ним на github: https://github.com/josiahjohnston/ltd_apache2ctl
username
обмежитися підмножиною параметрів? Скажи,start
restart
але ніstop
?