Centos7
setuid 沒有按預期工作
我有一個偵聽某個埠的節點 js 腳本。
如果此腳本接收到一個 json 文件,它需要在使用者主目錄中執行部署腳本。
節點腳本在 node_user 下執行。
主目錄是 user_b。
我設置了一個 acl,以便使用者 ’node_user’ 可以訪問使用者 ‘user_b’ 目錄並執行部署腳本。
setfacl -mu:node_user:rx deploy.sh
還要在部署腳本上設置 uid,以便它應該在 (user_b) 擁有的使用者下執行:chmod u+s deploy.sh
當我測試它時,部署腳本被執行,所以那裡有足夠的權限,但腳本仍然作為 node_user 而不是作為它的所有者(user_b)執行
我通過以下方式驗證了這一點: watch -n1 ’lsof | grep 部署.sh’
我想知道是否有人知道為什麼它不能按預期工作。
統計部署.sh
File: ‘deploy.sh’ Size: 918 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 25242546 Links: 1 Access: (4750/-rwsr-x---) Uid: ( 1003/ user_b) Gid: ( 1005/ user_b)
getfacl 部署.sh:
# file: deploy.sh # owner: user_b # group: user_b # flags: s-- user::rwx user:node_user:r-x group::r-x mask::r-x other::---
SUID 對腳本沒有影響。這是設計使然。
檢查此 Q/A以供參考