Отредактируйте / etc / sudoers (используя visudo
) на удаленном сервере и разрешите автоматическому пользователю запускать эти команды sudo специально, без запроса пароля.
Вы не можете делать «вещи, требующие привилегий суперпользователя» без прав суперпользователя.
Из приведенных вами примеров вы выполняете своего рода мониторинг, а не выполняете действия ( service httpd status
vs service httpd restart
)
Учитывая, что ваша среда ограничена корневыми ограничениями, я бы лично использовал что-то вроде Nagios NRPE для получения необходимой информации. NRPE предназначен для раздачи информации, не предлагая при этом никаких потенциально интерактивных сеансов. Вы можете определить свои собственные команды, которые могут выполняться удаленным хостом, и ограничить, какие удаленные хосты разрешены.
В ваших примерах вы можете добавить что-то вроде:
command[all_net_conns]=/usr/bin/sudo /bin/netstat -patn
Вам нужно будет разрешить соответствующий беспарольный доступ sudo для пользователя Nagios / NRPE, но вы можете ограничить его необходимыми командами и заблокировать учетную запись, чтобы никто не мог получить к ней доступ.