一. 文件(文件夹)的权限问题
一个文件或者文件夹,使用它的人有三类:root、当前用户和其他用户,例如,我们可以通过 ls -l xxx.xxx 来查看文件 “xxx.xxx” 的权限,比如我查看 /var/log/ 中的 boot.log 文件的权限:ls -l /var/log/boot.log,出现里如下信息:
-rw-r--r-- 1 root root 1667 Sep 4 22:45 /var/log/boot.log
代表什么意思呢?这里只解释前面十个字符:“-rw-r--r--” 的意思,我也只知道前面十个字符的意思
第一个字符“-”可以理解成:后面跟着的的九个字符 “rw-r--r--” 表示的是权限信息,九个字符,每三个一组,分成了三组:
"rw-" (前面三个字符)表示 root 对这个文件的权限
"r--" (中间三个字符)表示 当前登录用户 对这个文件的权限
"r--" (后面三个字符)表示 其他用户 对这个文件的权限
一个用户,不管是 root、当前登录用户还是其他用户,对一个文件的权限可以分为三类:
r 阅读
w 写入
x 执行
有时候,字符可能让人觉得不简洁,因为会写一长串的格式命令,觉得太麻烦了,linux 中可以使用类似于“状态压缩”,怎么弄呢,把 r w x 这三个权限看作一个 3 位的二进制数:rwx,其中,具有相应权限的表示为 1,不具备的表示为 0,比如:
rwx 111 7
rw- 110 6
r-x 101 5
r-- 100 4
-wr 011 3
......
那么,我们在执行 chmod 的时候,就可以简单的多了:只需要三个十进制数就行了,比如:
chmod 640 xxx.xxx 就是等价于 chmod -rw-r----- xxx.xxx
命令的含义也更加明确:6 表示 root 具备的权限集合,4 表示 当前登录用户 具备的权限集合,0 表示其他用户具备的权限集合
二. 使用 chmod 修改文件(文件夹)权限
暑假前,看见一个人给一个文件修改了权限,他执行的是如下命令: chmod +x xxx.xxx,这句话是什么意思呢,那时刚接触 linux,还不太理解,现在知道了
给一个文件添加权限,可以使用 +r、+w 或者 +x 这三个操作,相信大家也都明白什么意思:添加读的权限,写的权限,执行的权限
给一个文件取消权限,可以使用 -r、-w 或者 -x 这三个操作,分别是取消读的权限,写的权限,执行的权限
也就是说:+ 是增加权限,- 是取消权限,不过,值得注意的是,如果单独执行 +r(w, x) 或者 -r(w, x) 是将 root,当前登录用户,其他用户的权限都修改了,如果是 +,就都增加里这个权限(不管以前有没有这个权限),如果是 -,就都取消了这个权限(不管以前有没有)
如果要仔细配置 root 具有哪些权限,当前登录用户具有哪些权限,其他用户具有哪些权限,就需要使用上面提到的,将命令写清楚,不知道还有没有其他方法,但是写清楚肯定是对的,这也是避免出错的一种手段吧
比如,需要将一个文件修改成 root 和 当前登录用户具有读,写,执行的权限,其他用户什么权限都不具备,就可以这样:chmod 770 xxx.xxx
如果想保持一些权限不变,例如,我只想修改当前登录用户的权限,其他用户的权限不改变,可以先 ls -l xxx.xxx 看看这个文件的权限信息,然后只修改当前用户的权限即可
如果想将一个文件夹的权限修改了,需要使用到 -R 参数,他表示这个权限修改操作将改变这个文件夹内所有文件和文件夹的权限,递归的进行,遇到子文件夹,继续往下执行,可以在 terminal 中 man chmod 查看这个参数和其他参数的介绍
转自:http://www.cnblogs.com/zhj5chengfeng/archive/2013/09/05/3302440.html