无法在 /bin/false 用户下运行命令

无法在 /bin/false 用户下运行命令

Centos 8。

snowuser

[snowuser@snowcannon-01 ~]$ cat /etc/passwd | grep snowuser  
snowuser:x:1002:1002::/home/snowuser:/bin/bash   
[snowuser@snowcannon-01 ~]$ groups  
snowuser wheel

tomcat用户:

[snowuser@snowcannon-01 ~]$ cat /etc/passwd | grep tomcat  
tomcat:x:1003:1003::/opt/tomcat:/bin/false  


cat /etc/group | grep "tomcat\|snowuser"  
wheel:x:10:ydyachuk,amsliusar,snowuser  
snowuser:x:1002:   
tomcat:x:1003:   

尝试在tomcat用户下运行 Tomcat 的启动脚本:

/bin/su tomcat -c /opt/tomcat/bin/startup.sh

但没有得到任何结果,这意味着没有出现任何错误消息,也没有执行 Tomcat 进程。

我只有一个细节是命令执行时出现错误:

[snowuser@snowcannon-01 ~]$ echo $?
1

似乎tomcat用户具有执行脚本的适当权限:

[snowuser@snowcannon-01 ~]$ ll /opt/tomcat/bin/startup.sh 
-rwxr-xr-x. 1 tomcat tomcat 1904 Nov 11 15:14 /opt/tomcat/bin/startup.sh

我怎样才能使 Tomcat 运行?

答案1

将默认 shell 设置为/bin/false意味着su将切换用户,然后执行

/bin/false -c /opt/tomcat/bin/startup.sh

您可以使用-s 选项su覆盖 中的设置/etc/passwd,但是仅当调用用户是 root 或 中的现有条目/etc/passwd在 中列出时才允许这样做/etc/shells

相关内容