文件执行权限

时间:2016-08-29 23:01:58

标签: shell ubuntu terminal permissions

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?

1 个答案:

答案 0 :(得分:1)

运行

sh a.sh

sh需要(a)执行权限,a.sh需要(b)读取权限。

a.sh上的执行权限决定了以下内容是成功还是失败:

./a.sh

注意:

  1. 只要用户具有a.sh的读取权限,阻止sh a.sh不会为安全做任何事情:用户只需将a.sh的内容复制到他自己的文件中即可在他的副本上设置执行位。

  2. 为防止普通用户通过sh a.sh执行脚本,root可以删除该文件对“other”的读/写/执行权限:

    chmod o-a a.sh
    

    如果该文件归普通用户所属的组所有,则还需要删除组权限:

    chmod go-a a.sh