drwxr-xr-x3 strike strike 4096 Aug 24 04:04 IBM/
drwxrwxr-x3 strike admin 4096 Jun 14 06:06 backups/
注意: 清单 3 显示了 ls -l 的典型输出 。清单 2 看起来有些不同,这是因为在前面的讨论中出于简化的目的,有意隐藏了组所有者的信息 。您可以使用 -G 隐藏组所有者 。
名为 backups 的目录的组所有者为 admin,它将某些权限给予了组中所有的成员 。同时,我的其他文件的组所有者为 strike 。通常,一个用户是他或她的同名组中的唯一成员,这个同名组有效地将访问权限限制于该用户 。
细节内容
如果您回头再看看上面的 ls 的输出结果,您将注意到,每行内容的开头有一个由 10 个字符组成的序列 。每个字符都是一个开/关设置或位,后者表示了三类用户(您本人、您的一个组和其他用户)的某一种特定的权限 。图 1 显示了每一位的用法 。
图 1. UNIX 文件的权限位
在图 1 中:
起始位表示该文件是否为目录(通常,起始位 表示该文件是否为特殊文件 。如果该文件是特殊文件,起始字符 d 表示目录、l 表示符号链接,等等) 。这个设置是无法改变的 。
接下来的三位(用蓝色表示的)分别表示您 对该文件的读、写和执行权限 。您可以禁用写权限位,例如要防止删除文件 。(是的,要删除一个文件,您需要写权限 。)
接下来的三位(用绿色表示的)表示组 对该文件的读、写和执行权限 。
最后的三位(用橙色表示的)表示所有其他 用户(即除了您自己以及您的组中的成员之外的所有用户)的权限 。
可以使用 ls -laF 的输出作为示例查找上述内容:
只有我可以读和写 .bash_history、.bash_profile、.bashrc 和 .viminfo 文件 。我可以查看、编辑和删除这些文件 。
只有我可以访问 .ssh 目录 。第一位表示它是一个特殊的文件,d 表示目录 。我可以显示该目录中的内容,因为已经设置了它的用户读位 。我可以在该目录中添加和删除文件,因为已经设置了它的用户写位 。您可能奇怪为什么该目录是用户可执行的 。除非设置了该位,否则无法遍历目录(进入目录并列举目录) 。(另外,正如本系列的第 3 部分中所提到的,您的 .ssh 目录必须是您私有的,否则您的公钥访问无法正常工作 。)
我可以读和写 Archive.zip 文件,并且其他用户可以读该文件 。(当然,strike 组也可以读该文件,但如果我是该组中唯一的成员,那么这个权限是没有实际意义的 。)
我可以列举、读和写 IBM(另一个目录)中的文件,而其他用户可以列举其中的内容 。
最后,admin 组的成员和我可以列举、读和写 backups 目录中的文件,而其他用户可以列举和读 。
设置目录的保护 (sticky) 位
如果您希望确保一个目录持久,而不会被意外地删除,那么可以使用 chmodT 设置其保护 位 。
$ ls -lF
drwxrwxrwx2 strike strike68 Aug 28 06:21 dropbox/
drwx------2 strike strike68 Aug 28 06:21 mine/
$ chmodt dropbox
$ ls -lF
drwxrwxrwt2 strike strike68 Aug 28 06:21 dropbox/
drwx------2 strike strike68 Aug 28 06:21 mine/
设置保护位并将权限设置为所有用户都可以读、写和执行,每个用户都可以在 dropbox 目录中放置文件,但只有我能够删除该目录中的文件或该目录本身 。
如果您运行 ls -ld /tmp,这个用作应用程序临时空间的系统范围临时目录可能是保护的 。
您可以使用 chmod(更改模式 change mode)命令修改相应的权限(除了目录位之外) 。您可以使用 chgrp(更改组 change group)命令来修改文件所属的组 。(超级用户 root 也可以使用 chown 或 change owner 命令来更改文件所有权 。)
推荐阅读
- UNIX 常用的指令
- 耳机降噪怎么设置
- 不同的类UNIX操作系统密码破解方法介绍
- 对话 UNIX: 启动
- 在 UNIX 中安装和配置开发 Web 服务器
- UNIX 文件系统基本操作
- UNIX 新手指南,第 3 部分:正则表达式
- UNIX 新手指南,第 2 部分: vi 文本编辑器
- UNIX 新手指南: 一些很好的 Shell 诀窍
- 使用 UNIX System V IPC 机制共享应用程序数据
