我试图从我的开发箱重新启动我的tomcat版本5在一个centos服务器上。 我可以以普通用户身份login(不是root),但我需要能够重新启动服务。 有没有一个我可以修改的configuration文件,或者我的用户需要进入的组才能够重新启动tomcat5服务?
编辑 :我将在Ant中执行此任务,而sudo不会为此工作,因为Ant不会为您提供虚拟terminal。
编辑 :这里是我尝试以root身份通过ant重新启动tomcat时的错误。
ssh [email protected] /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项目。 现在它以普通用户的身份工作。
这是我的ant目标
<target name="restartTomcat"> <exec executable="/usr/bin/ssh"> <arg line="[email protected] sudo /sbin/service tomcat5 restart"/> </exec> </target>
如果你有使用sudo的问题,你会得到这样的消息:
sudo: sorry, you must have a tty to run sudo
那么你应该评论一下:
Defaults requiretty
在/etc/sudoers里面。 由于RHEL / CentOS在默认情况下打开了该选项。
如果服务器安装了sudo ,则可以将自己添加到sudoers文件(使用visudo命令) – 您可以允许所有内容,也可以只使用该特定命令。 然后使用sudo somecommand以root权限运行它。
但是不pipe用什么方法,你都需要至less以root身份login – 或者让其他人以root身份login。
编辑: sudo有一个无密码的选项( NOPASSWD sudoers),这不需要一个tty(如果我没有记错的话)。
让pipe理员添加“/etc/init.d/tomcat”到你可以执行的W / O密码的命令列表,这样你可以 sudo它没有一个pty:
yourname machinename=(ALL) NOPASSWD:/etc/init.d/tomcat
有很多其他的方式来做你所要求的,艰难的。