Tag: setuid

从setuid root C程序调用脚本 – 脚本不以root身份运行

我需要以root身份运行bash脚本(无密码sudo或su不可行),因为你无法在Linux中设置脚本,我想从可执行文件中调用它并使其成为 setuid: $ cat wrapper.c int main(void) { system(“/bin/bash ./should_run_as_root.sh”); } $ gcc -o wrapper wrapper.c $ sudo chown root wrapper $ sudo chmod ug+s wrapper $ ll wrapper -rwsr-sr-x 1 root users 6667 2009-02-17 11:11 wrapper $ 这有效 – 就像正确运行脚本一样 – 但脚本以执行“./wrapper”的用户身份运行。 为什么? 以及如何正确实现这一点? 谢谢!