大多数Unix发行版通常不允许您在使用#!的文件上使用setuid。口译员。由于Solaris使用的是比大多数其他发行版更安全的实现,因此Solaris恰恰是允许它的一种。
有关此机制为何如此危险的更多背景信息,请参见此常见问题解答条目:如何使setuid
shell脚本起作用?
请参阅此链接以获取更多讨论以及如何编译将运行脚本的setuid可执行文件:shell脚本上的setuid
相关部分:
int main(){ setuid( 0 ); system( "/path/to/script.sh" ); return 0;}


