lameta01dev:/tmp/test> ls -ltra
total 20
drwxrwxrwt 14 root root 12288 2016-08-29 14:21 ..
-rw-r--r-- 1 root root 19 2016-08-29 14:24 a.sh
drwxr-xr-x 2 root root 4096 2016-08-29 14:24 .
lameta01dev:/tmp/test> whoami
apgimage
lameta01dev:/tmp/test> sh a.sh
hello world
问题:如果我以apgimage身份登录,当文件的所有者是root时,如何使用“sh a.sh”命令来强制执行a.sh?
答案 0 :(得分:1)
运行
sh a.sh
sh
需要(a)执行权限,a.sh
需要(b)读取权限。
a.sh
上的执行权限决定了以下内容是成功还是失败:
./a.sh
注意:
只要用户具有a.sh
的读取权限,阻止sh a.sh
不会为安全做任何事情:用户只需将a.sh
的内容复制到他自己的文件中即可在他的副本上设置执行位。
为防止普通用户通过sh a.sh
执行脚本,root可以删除该文件对“other”的读/写/执行权限:
chmod o-a a.sh
如果该文件归普通用户所属的组所有,则还需要删除组权限:
chmod go-a a.sh