即使设置了 setuid 位并提供了 o+rx,也无法 运行 编写具有所有者权限的脚本

unable to run script with owners privileges even after setuid bit is set and o+rx is provided

即使设置了 setuid 位并提供了 o+rx,也无法 运行 拥有所有者权限的脚本

你好, 我与用户 Shyam 创建了一个脚本并向其他人提供了 r-x 并为此文件设置了 setuid 位。

-rwsrwxr-x。 1 shyam shyam 53 十一月 26 14:43 shyam.sh

脚本包含以下内容:

echo 你好$USER

echo date 你好 $USER >> test.txt

shyam 能够 运行 这个但是当 yesh 用户 运行s 脚本第一行被执行但在第二行它说权限被拒绝。 附上一些细节截图。 我不确定为了实现 -> yesh 成功地 运行 整个脚本我在这里错过了什么。 enter image description here

这是 asked and answered before,要点是:

Linux ignores the setuid bit on all interpreted executables (i.e. executables starting with a #! line). The comp.unix.questions FAQ explains the security problems with setuid shell scripts. These problems are of two kinds: shebang-related and shell-related; I go into more details below.