
森托斯 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
選項tosu
覆蓋 中的設置/etc/passwd
,但這僅在呼叫使用者是 root 或 中/etc/passwd
列出現有條目時才允許/etc/shells
。