Удалённая перезагрузка кота

Я пытаюсь перезагрузить мой 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

Есть много других способов сделать то, что вы просите, жестко.

Другие вопросы по тегам