我以 root 用户身份创建了一个小脚本......
#!/bin/bash
cat /etc/shadow
并设置设定值位并将其放入来宾文件夹中。当我运行脚本时客人,显示权限被拒绝。为什么?我在其上设置了 root setuid 位,当 root 用户创建脚本时,它应该以 root 权限执行它。
答案1
这不起作用的原因是解释脚本上的 SUID 位被忽略。如果您编写了一个执行相同命令的 C 程序,那么它就可以工作。
我以 root 用户身份创建了一个小脚本......
#!/bin/bash
cat /etc/shadow
并设置设定值位并将其放入来宾文件夹中。当我运行脚本时客人,显示权限被拒绝。为什么?我在其上设置了 root setuid 位,当 root 用户创建脚本时,它应该以 root 权限执行它。
这不起作用的原因是解释脚本上的 SUID 位被忽略。如果您编写了一个执行相同命令的 C 程序,那么它就可以工作。