Удалённая перезагрузка кота
Я пытаюсь перезагрузить мой tomcat версии 5 на сервере Centos из моей коробки разработчика. Я могу войти как обычный пользователь (не root), но мне нужно иметь возможность перезагрузить сервис. Есть ли файл конфигурации, который я могу изменить, или группа, в которую мой пользователь должен войти, чтобы иметь возможность перезапустить службу tomcat5?
РЕДАКТИРОВАТЬ: я буду выполнять эту задачу в Ant, и sudo не будет работать для этого, так как Ant не дает вам виртуальный терминал.
РЕДАКТИРОВАТЬ: здесь ошибка, когда я пытаюсь перезапустить tomcat как root через муравей.
ssh root@server.com /sbin/service tomcat5 restart
restartTomcat:
[exec] Pseudo-terminal will not be allocated because stdin is not a terminal.
Это выполняется от имени пользователя root, который имеет привилегии ssh. Команда как есть работает отлично.
РЕДАКТИРОВАТЬ
vi /etc/sudoers (EDIT: please use visudo instead)
comment out: #Default requiretty
Это исправляет пункт tty. Теперь он работает как обычный пользователь.
Вот моя цель муравья
<target name="restartTomcat">
<exec executable="/usr/bin/ssh">
<arg line="user@server.com sudo /sbin/service tomcat5 restart"/>
</exec>
</target>
3 ответа
Если у вас возникают проблемы с использованием sudo, и вы получаете сообщение, подобное этому:
sudo: sorry, you must have a tty to run sudo
Затем вы должны закомментировать:
Defaults requiretty
внутри /etc/sudoers
, Поскольку RHEL/CentOS поставляется с этой опцией, включенной по умолчанию.
Если на сервере установлен sudo, вы можете добавить себя в файл sudoers (используя visudo
команда) - вы можете разрешить все, или только эту конкретную команду. Тогда используйте sudo somecommand
запустить его с правами root.
Но независимо от того, каким способом вам нужно будет войти в систему как root хотя бы один раз - или попросить кого-то еще войти в систему как root.
Изменить: у sudo есть опция без пароля (NOPASSWD
в sudoers), который не требует tty (если я правильно помню).
Попросите администратора добавить "/etc/init.d/tomcat" в список команд, которые вы можете выполнять без пароля, таким образом, вы можете использовать sudo без pty:
yourname machinename=(ALL) NOPASSWD:/etc/init.d/tomcat
Есть много других способов сделать то, что вы просите, жестко.