linux 文件访问 read/write 由 root,由所有人执行

linux file access read/write by root, execute by all

我正在尝试创建一个 shell 脚本,它只能由 root read/written 但可以由所有人执行。我创建了一个文件 test.sh,将所有权设置为 "chown root:me test.sh" 并将权限设置为 "chmod 711 test.sh",希望这可以解决问题。但是,这会导致文件始终需要 sudo 才能执行。是否可以编辑权限,使任何人(不使用 sudo)都可以执行脚本,但只有 root(使用 sudo)才能 read/write 文件?

这是不可能实现的,至少使用 shell 个脚本是不可能的。

实际上,在执行的那一刻,shell程序(我假设Bash)需要读取shell文件的内容和进程运行s 与您的用户名和权限。

话虽如此,BASH 程序(ZSH、SH 或任何其他 shell 遵循相同的规则)需要能够读取文件的内容,这只能实现通过授予读取权限 +r。因此,最低限度是 755 权限模型。

另一种方法是 运行 一个实际的程序,它可以完成这项工作并且不需要读取权限即可执行。但这是完全不同的模式。

这个回复也解释了。

https://unix.stackexchange.com/questions/34202/can-a-script-be-executable-but-not-readable