6r-x5r--4-wx3-w-2--x1---0当您需要给一个文档指定任何权限时,数字权限语法特别有用,比如在下面的示例中:
$ chmod 0755 scriptfile.sh
$ ls -l scriptfile.sh
-rwxr-xr-x 1 drobbins drobbins 0 Jan 9 17:44 scriptfile.sh
在该示例中,我们使用了 0755 模式,他展开为一个完整的权限配置“-rwxr-xr-x”。
umask
当进程创建了新文档时,他指定新文档应该具备的权限。通常,所请求的模式是 0666(每个人可读和可写),他比我们希望的具备更多的权限。幸运的是,不管什么时候创建了新文档,Linux 将参考叫做“umask”的东西。系统用 umask 值来将初始指定的权限降低为更合理、更安全的权限。您能够通过在命令行中输入 umask 来查看您当前的 umask 配置:
$ umask
0022
Linux 系统上,umask 的缺省值一般为 0022,他允许其他人读您的新文档(假如他们能够得到他们),但是不能进行修改。
为了在缺省的情况下使新文档更安全,您能够改变 umask 配置:
$ umask 0077
umask 将确保组和其他用户对于新创建的文档绝对没有任何权限。那么,umask 怎样工作呢?和文档的“常规”权限不同,umask 指定应该关闭哪一个权限。我们来参阅一下我们的“模式到数字”映射表,从而使我们能够理解 0077 的 umask 的意思是什么:
| 模式 | 数字 |
rwx | 7 |
rw- | 6 |
r-x | 5 |
r-- | 4 |
-wx | 3 |
-w- | 2 |
--x | 1 |
--- | 0 |
使用该表,0077 的最后三位扩展为 ---rwxrwx。现在,请记住 umask 告诉系统禁用哪个权限。根据推断,我们能够看到将关闭任何“组”和“其他”权限,而“用户”权限将保留不动。
介绍 suid 和 sgid
当您最初登录时,将启动一个新的 shell 进程。您已知道,但是您可能还不知道这个新的 shell 进程(通常是 bash)使用您的用户标识运行。照这样,bash 程式能够访问任何属于您的文档和目录。事实上,作为用户,我们完全依靠其他程式来代表我们执行操作。因为您启动的程式继承了您的用户标识,因此他们不能访问任何不允许您访问的文档系统对象:
例如,一般用户不能直接修改 passwd 文档,因为“write”标志已对除“root 用户”以外的每个用户关闭:
$ ls -l /etc/passwd
-rw-r--r-- 1 root wheel 1355 Nov 1 21:16 /etc/passwd
但是,一般用户确实需要在他们需要改变其密码的任何时候,能够修改 /etc/passwd(至少间接地)。但是,假如用户不能修改该文档,究竟怎样完成这个工作呢?suid
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




