Продолжу делиться всякими плюшками и фейлами.

Пару дней назад начал писать скрипт на Bash для того, чтобы 1С-ники в случае чего могли перезапустить службы 1С, PostgreSQL. И меня при этом не трогали.

В общем, написал. Но хотелось бы, чтобы перезапуск служб производился без запроса пароля.

Есть файл в системе /etc/sudoers, в котором можно всё это сделать.

Добавляем строчку:

username ALL=NOPASSWD:/usr/sbin/service postgresql*,/usr/sbin/service srv1cv83*,/usr/sbin/reboot

И всё. Пользователь username может управлять указанными службами и даже перезапустить сервак.

Делается это так:

sudo service postgresql restart

или

sudo service srv1cv83_1541 status

Но пароль при этом не запрашивается. Ещё один плюс в том, что sudo -i система выполнить не даст.

srv1cv83* указана так, потому что на сервере может быть несколько служб 1С. Если указать /usr/sbin/service postgresql st*, то можно будет запустить, остановить и посмотреть статус. И всё!

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
В процессе отладки на виртуалке словил жёсткий fail.

В sudoers прописал service без пути. После этого команда sudo начала ругаться на ошибки в sudoers и перестала работать.

У меня Debian. Пароль root заблокирован, sudo не работает. Я даже в recovery загрузиться не смог.

Пришлось на хосте монтировать файл виртуалки qcow2 и восстанавливать всё как было.

В случае проблем — сэкономите кучу времени и нервов.

su root — и будет счастье.