这是代码:
(根:)
# mkdir /test
# cp /bin/bash /test/sbash
# chmod a+s /test/sbash
Run Code Online (Sandbox Code Playgroud)
(用户 1:)
$ cd /test
$ ./sbash
$ mkdir trycreate
mkdir: cannot create directory `trycreate': Permission denied
Run Code Online (Sandbox Code Playgroud)
设置了 setuid 位的 bash 脚本也不起作用。
顺便说一句,我的 setuid perl 脚本有效:
test.pl:(设置了 setuid 位,owner=root)
#!/usr/bin/perl
mkdir('/test/tryperlcreate') or die 'failed';
Run Code Online (Sandbox Code Playgroud)
由 user1 执行 test.pl 将创建 root 拥有的目录。