我编写了一个简单的bash脚本,对主目录进行备份,e将其放入/var/ backup中。由于该目录是受保护的,所以我将脚本写为root,然后设置SUID。
armando@ubuntu:~/scripts/bash $ ll
-rwsr-xr-x 1 root root 2596 Jul 28 10:43 homebackup.sh*即便如此,当脚本试图写入/var/backups时,我仍然会得到“拒绝权限”错误。为什么?
发布于 2014-07-28 18:02:16
在Linux和大多数其他现代UNIX家庭系统中,setuid位只被识别为直接二进制可执行文件,而不是脚本。
这是出于设计和安全考虑。您可以通过为您的setuid脚本构建一个编译过的包装器,或者使用一个现有的工具(例如sudo,通过配置来避免在将特定脚本调用为所需的用户时需要密码)来解决这个问题。
见this comprehensive discussion on UNIX StackExchange。
https://stackoverflow.com/questions/25001206
复制相似问题