Технический отдел предоставил мне сервер (с корневым доступом) для запуска приложения веб-приложения в каком-либо поддомене. Но приложение требует аутентификации. Поэтому я запросил ключ SSL для домена. Техническая команда не хочет давать мне ключ - это понятно.
Время от времени мне нужно перезагружать сервер. Можно ли настроить разрешения для пользователя без полномочий root, чтобы иметь возможность перезапустить сервер, но без доступа к его ключу SSL?
Сервер может быть apache или nginx. Если я запускаю один из двух без корневого доступа, я получаю следующее:
apache:
AH00526: Syntax error on line 35 of /etc/apache2/sites-enabled/canvas-misis-ru.conf:
SSLCertificateKeyFile: file '/etc/ssl/private/ssl-cert-snakeoil.key' does not exist or is empty
nginx:
nginx: [alert] could not open error log file: open() "/var/log/nginx/error.log" failed (13: Permission denied)
2014/09/21 17:08:55 [warn] 16805#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:2
2014/09/21 17:08:55 [emerg] 16805#0: SSL_CTX_use_PrivateKey_file("/etc/ssl/private/ssl-cert-snakeoil.key") failed (SSL: error:0200100D:system library:fopen:Permission denied:fopen('/etc/ssl/private/ssl-cert-snakeoil.key','r') error:20074002:BIO routines:FILE_CTRL:system lib error:140B0002:SSL routines:SSL_CTX_use_PrivateKey_file:system lib)
Можно предоставить пользователю root-права на одну команду с помощью правила в /etc/sudoers
.
sudo visudo
Добавить новое правило
someuser ALL=(ALL) NOPASSWD: /usr/sbin/service apache2 restart
Как видите, можно и параметры.
Пользователь someuser
разрешено делать следующее:
sudo service apache2 restart