chmod命令用于改变文件或目录的访问权限。
让我们先来看一看这个文件。在 shell 提示下,键入:
ls -l sneakers.txt
前面的命令显示了这个文件信息:
-rw-rw-r-- 1 test test 39 3月 11 12:04 sneakers.txt
这里提供了许多细节。你可以看到谁能读取(r)和写入(w)文件,以及谁创建了这个文件(test),所有者所在的组群(test)。在组群右侧的信息包括文件大小、创建的日期和时间,以及文件名。
第一列显示了当前的权限;它有十位。第一位代表文件类型。其余九位实际上是用于三组不同用户的三组权限。
那三组是:文件的所有者,文件所属的组群,和“其他人”,这是前面没有包括的用户和组群。
- (rw-) (rw-) (r--) 1 test test
| | | |
类型 所有者 组群 其他人
第一个项目指定文件类型,它可以显示以下几种:
d — 目录
-(短线)— 常规文件(而不是目录或链接)
l — 到系统上其它位置的另一个程序或文件的符号链接
在第一个项目之后的三组中,你可以看到下面几种类型:
r — 文件可以被读取
w — 文件可以被写入
x — 文件可以被执行(如果它是程序的话)
当你在所有者、组群、或其他人中看到一个短线(“-”),这意味着相应的权限还没有被授予。可以看出以下这句
-rw-rw-r-- 1 test test 39 3月 11 12:04 sneakers.txt
文件的所有者(这个情况下是 test)有读取和写入该文件的权限。组群 test 也有读取和写入 sneakers.txt 的权限,其他组群没任何权限。它不是一个程序,因此所有者和组群都没有执行它的权限。
接下来我们用chmod来改变文件的权限,键入下面的命令:
chmod o+w sneakers.txt
o+w 命令告诉系统你想给其它人写入文件 sneakers.txt 的权限。要查看结果,再次列出文件的细节。现在,这个文件看起来与下面的输出相仿:
-rw-rw-rw- 1 test test 39 3月 11 12:04 sneakers.txt
现在,每个人都可以读取和写入这个文件。
要从 sneakers.txt 中删除读写权限,使用 chmod 命令来取消读取和写入这两个的权限。
chmod go-rw sneakers.txt
通过键入 go-rw,你在告诉系统">删除文件 sneakers.txt 中组群和其它人的读取和写入权限。结果与下面的输出相似:
-rw------- 1 test test 39 3月 11 12:04 sneakers.txt
当你想用 chmod 命令来改变权限时,把它们当做速记符号来记忆,因为你实际要做的只是记住几个符号而已。
下面是一个速记符号含义的列表:
身份
u — 拥有文件的用户(所有者)
g — 所有者所在的组群
o — 其他人(不是所有者或所有者的组群)
a — 每个人或全部(u、g、和 o)