Root用户让其他用户运行某程序
这里以启动tomcat为例
1、安装tomcat不介绍了,自己百度
2、测试能否使用,略
3、创建tomcat用户
useradd tomcat -s /sbin/nologin
创建tomcat,禁止登陆,用户目录用来存放日志
4、启动
sudo -u tomcat tomcat/bin/startup.sh
这里报错:找不到Java_home
思考:配置了全局环境变量JAVA_HOME,都能使用,为啥sudo就失败?会不会是sudo也有个.bashrc类似的,里面不存在?
验证:sudo -E env,一看果然没有JAVA_HOME
原因:sudo 为了安全使用一套特殊的环境变量,参见/etc/sudoers 里面有个Defaults /bin/bash:/sbin/bash
修改:加入jdk的目录,如图
最后再试下:sudo -u tomcat tomcat/bin/startup.sh
不足之处:
1、http://xxx:8080/manager/进去不会弹出输入用户名密码的框,而http://xxx/manager可以弹出框,原因未知;;;;;或许是我nginx代理了80端口缘故、?但是关闭了也没用