日期:2014-05-16  浏览次数:20864 次

linux chmod 命令详细的介绍
在 LINUX 下用电脑经常会用到 chmod 命令。

Linux 的文件权限可以分成三段, 通常 ls -l 出来的第一列就是文件权限信息。每个文件(任意类型的文件或者文件夹)的属性都用10个字符表示。举个简单的例子, 看下面这行权限信息:
drwxr-xr-x

可以知道, 第一字符是 d , 说明它是一个文件夹. 文件权限信息第一字符通常都是链接符 “-”.

从第二到第四位 (rwx) 是文件所有者的权限.
r: 可读, w: 可写, x: 可执行.

所有上面的信息表示该文件夹的拥有者有可读,可写, 可执行给文件夹的权限. 用就是全部权限.

再看第五位到第七位 (r-x) 是文件夹用户拥有者所在组的权限. 根据上面的说法就是这个组对该文件夹有可读可执行的权限. 链接号表示没有权限空缺, 没有写权限.

同样第八位到第十位 (r-x) 是其他人对这个文件夹操作的权限. 这里看来就是可读, 可执行权限.

其实我们更多的看到的是数字组成的权限. 文件的权限组成是由 用户的权限, 用户所在组的权限, 其他人的权限 这三个权限组成的. 每个权限都可以是 r,w,x 的任意组合. 所以用字符表示太麻烦, 简单的用数字表示比较方便. 我们只要记住3个数字就行了.

其中: r = 4, w = 2, x = 1. 没有见过 linux 权限有超过7的数字的. ^o^

所以如果是可读可写可执行的话那就是: rwx = 4 + 2 + 1 = 7 上面的三个权限都可以这样算出来.

比如我们看一个文件的权限如下: -rw-r–r–

说明这个文件是个普通文件, 因为第一个字母是连接符 “-”, 看接下来的三个字母是: rw- , 表示该文件的所有者对该文件可读可写. 那么用数字表示也就是 4 + 2 + 0 = 6,

再看第5-7个字符: r–, 表示该文件所有者所在的组对该文件只有可读权限. 那么用数字表示为: 4 + 0 + 0 = 4,

看最后三个字符: r–, 表示其他人对该文件的权限. 同样是知读. 用数字表示也是 4.

所有该文件的权限用数字看起来就是: 644

了解了权限的组成. 现在用 chmod 命令就方便了. 最简单的用法.

sudo chmod 644 readme.txt

这样就给当前目录下的 readme.txt 文件重新赋予了权限. 只有拥有者可以修改, 其他人只能看文件内容.

另外还有一种比较方便的针对某一类的用户的操作. 先介绍2个操作符. “+” 表示增加权限. “-” 表示消减权限.

文件所有者可以用字母 u 表示. 用户所在的组可以用字母 g 来表示. 其他人可以用字母 o 来表示. 所有人可以用字母 a 了表示.

其实就是单词 user, group, other, all 的第一个字母.

比如对一个文件 readme.txt 执行修改其他人对这个文件的权限. 修改位其他人可以写. 可以这样

sudo chmod o+w readme.txt

相对的, 修改用户所在组的成员对该文件也有可修改的权限:

sudo chmod g+w readme.txt

现在如果想去掉 其他人对该文件的可修改的权限的话:

sudo chmod o-w readme.txt

最后, 我们让所有人对该文件都有全部权限的话, 这样做是很危险的.只是测试举例才用而已. 可以这样

sudo chmod a+rwx readme.txt

OK, 到这里就简单的介绍完了. 如果想对一个目录及其下面的文件都修改成统一的权限信息的话可以加参数 -R , 比如对当前目录 test 及其下面的文件都该成 文件拥有者可读可写, 其他人都只能看的话:

chmod -R 644 test