我有一个名为 /test 的目录,里面有两个文件:
info.txt
script.sh
我想授予用户 john 只读访问权限并执行以下操作:
setfacl -m u:john: r test/
使用上述命令,john 无法访问该文件夹,因为他缺少执行权限,因此我再次尝试使用以下命令:
setfacl -m u:john: rx test/
好的,现在可以了:用户 john 能够访问该文件夹并读取文件。
然而,他可以运行 script.sh。我无意授予后者的权限。我该怎么做?
答案1
您可以这样做chmod o-x test/script.sh
,但这是毫无意义的。用户只需将文件复制到其主目录,使其可执行并从那里运行即可。无论如何,它都会以用户的权限运行,除非它是 setuid。并且 shell 脚本不能是 setuid,但复制 setuid 文件无论如何都会从副本中删除 setuid 位。