SUID在Bash中不起作用

时间:2014-07-28 17:50:44

标签: linux bash shell suid

我编写了一个简单的bash脚本,用于备份主目录,并将其放入/ var / backups中。 由于该目录受到保护,我以root身份编写脚本,然后设置SUID。

armando@ubuntu:~/scripts/bash $ ll
-rwsr-xr-x 1 root    root    2596 Jul 28 10:43 homebackup.sh*

即使这样,我也得到了#34; Permission Denied"脚本尝试写入/ var / backups时出错。为什么呢?

1 个答案:

答案 0 :(得分:2)

在Linux和大多数其他现代UNIX系列系统中,setuid位仅被识别为直接二进制可执行文件,而不是脚本。

这是出于设计原因,出于安全考虑。您可以通过为setuid脚本构建编译的包装器,或使用现有工具(例如sudo的配置来避免在将特定脚本作为所需用户调用时需要密码)来解决此问题。

请参阅this comprehensive discussion on UNIX StackExchange