Centos
/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 執行?
將預設shell設置為
/bin/false
意味著su
將切換使用者,然後執行/bin/false -c /opt/tomcat/bin/startup.sh
您可以使用
-s
選項來su
覆蓋 中的設置,但僅當呼叫使用者是 root 或 中列出/etc/passwd
的現有條目時才允許這樣做。/etc/passwd``/etc/shells