我有一个节点js脚本,可以监听某个端口。
如果这个脚本接收到一个json文件,它需要在用户home dir中执行一个部署脚本。
节点脚本在node_user下运行。
家是user_b。
我设置了一个acl,以便用户'node_user‘可以访问用户'user_b’dir并执行部署脚本。
[医] -m u:node_user:rx deploy.sh
还在部署脚本上设置uid,以便在它所属的用户(user_b):chmod u+s deploy.sh下执行
当我测试它时,部署脚本就会被执行,这样就有了足够的权限,但是脚本仍然以node_user的形式执行,而不是作为它的所有者(user_b)执行。
我验证了这一点:观看-n1 'lsof \ grep deploy.sh‘
我想知道是否有人知道为什么它不像预期的那样起作用。
stat deploy.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 deploy.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::---发布于 2020-02-26 15:24:49
SUID对脚本没有影响。这是故意的。
检查本问答以供参考
https://serverfault.com/questions/1004688
复制相似问题