無法在 /bin/false 用戶下執行命令

無法在 /bin/false 用戶下執行命令

森托斯 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

相關內容