红联Linux门户
Linux帮助

chmod命令

发布时间:2009-01-28 22:06:41来源:红联作者:videoout
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)

权限

r -- 读取权

w -- 写入权

x -- 执行权

行动

+ -- 添加权限

- -- 删除权限

= -- 使它成为唯一权限

另外,也可以通过使用数字来改变权限。

每种权限设置都可以用一个数值来代表:

r = 4

w = 2

x = 1

- = 0

当这些值被加在一起,它的总和便用来设立特定的权限。譬如,如果你想有读取和写入的权限,你会得到一个值为 6 的总和;4(读取)+ 2(写入)= 6。

sneakers.txt 文件的数字权限设置如下:

- (rw-) (rw-) (r--)

| | |

4+2+0 4+2+0 4+0+0

所有者的总和为6,组群的总和为6,其他人的总和为4。这个权限设置读作 664。

如果你想改变 sneakers.txt 文件的权限,因此你的组群中的人没有写入权,但是仍旧能够读取文件的话,从这组数字中减掉2就可以删除写入权限了。

然后,这组数值就变成644。

要实现这些新设置,键入:

chmod 644 sneakers.txt

现在,列举这个文件来校验改变。键入:

ls -l sneakers.txt

输出应为:

-rw-r--r-- 1 test test 39 3月 11 12:04 sneakers.txt

现在,组群和其他人都没有了到文件 sneakers.txt 的写入权。

这里是一个某些常用设置、数值、以及它们的含义的列表:

-rw------- (600) -- 只有所有者才有读取和写入的权限。

-rw-r--r-- (644) -- 只有所有者才有读取和写入的权限;组群和其他人只有读取的权限。

-rwx------ (700) -- 只有所有者才有读取、写入、和执行的权限。

-rwxr-xr-x (755) -- 所有者有读取、写入、和执行的权限;组群和其他人只有读取和执行的权限。

-rwx--x--x (711) -- 所有者有读取、写入、和执行权限;组群和其他人只有执行权限。

-rw-rw-rw- (666) -- 每个人都能够读取和写入文件。(请谨慎使用这些权限。)

-rwxrwxrwx (777) -- 每个人都能够读取、写入、和执行。(再重申一次,这种权限设置可能会很危险。)

下面列举了一些对目录的常见设置:

drwx------ (700) -- 只有所有者能在目录中读取、写入。

drwxr-xr-x (755) -- 每个人都能够读取目录,但是其中的内容却只能被所有者改变。

出自陈纯.Red Hat Linux 9 网络服务入门与进阶
文章评论

共有 1 条评论

  1. nooway 于 2009-02-12 20:28:56发表:

    好多阿 。。。