В настоящее время я разрабатываю приложение, которое может автоматически запускать команды на нескольких серверах.
Если я изменяю конфигурацию службы, мне нужно перезапустить (или перезагрузить) ее, и поэтому некоторые команды требуют прав root. Чтобы это работало, я зашифровал и сохранил пароль пользователя в текстовом файле, чтобы использовать его во время команд sudo. Я считаю, что это серьезная угроза, но я также не хотел, чтобы приложение запускалось с правами root.
Есть идеи?
решение1
Вы можете ограничить, какие команды пользователь может запускать черезсудо. Также вы могли бы предоставитьНЕТ ПАРОЛЬвариант вsudoersфайл в контексте этого пользователя вместо использования «функции» зашифрованного пароля.
Вот пример, позволяющий непривилегированному пользователю перезапуститьiptablesуслуга:
geewid ALL = (root) NOPASSWD: /sbin/service iptables restart, /sbin/service iptables reload
Список команд разделен запятыми...
Вы также можете использоватьCmnd_Aliasособенность:
Cmnd_Alias FOOBAR = /sbin/service iptables restart, /sbin/service iptables reload
geewid ALL = (root) NOPASSWD: FOOBAR