22
Apr
2013
Linux 文件权限
大学生涯没有接触linux和开源社区是一大遗憾,年前买本鸟哥的Linux私房菜 第三版
一直没看,最近扒出来开始学习,大概看了6,7章,发现有些东西当时记下来了,过后又忘记了,所以准备在这里记录下学习笔记,记录一下我认为比较重要的东西,方便自己查阅。
文件拥有者概念
- 拥有者:文件的所有者,表示谁拥有此文件
- 群组:文件属于哪个群组,群组中的成员对此文件有相同的某种权限,方便团队合作
- 其他人:不是拥有者,不是root,也不属于该文件所属群组的人
鸟哥使用了家的概念来解释这些关系非常的浅显易懂,私人空间,公共客厅,以及朋友来比喻非常贴切。
Linux 文件权限概念
[root@king tmp]# ls -l
total 4
drwxr-xr-x 2 root root 4096 Apr 22 10:53 dir
-rw-r--r-- 1 root root 0 Apr 22 10:53 file
[ 1 ][2][ 3 ][ 4 ][ 5 ][ 6 ][ 7 ]
[1]表示文件权限,[3]表示拥有者,[4]表示所属群组,[7]表示名称
[1]文件权限是由10位组成:
- 000:文件的类型(目录,文件,链接文件…)
- 123:拥有者的读写执行权限
- 456:群组的读写执行权限
- 789:其他人的读写执行权限
改变文件属性与权限
- chgrp :改变文件所属群组
- chown :改变文件拥有者
- chmod :改变文件的权限, SUID, SGID, SBIT等等的特性
权限对文件的意义
- r (read):可读取此一文件的实际内容,如读取文本文件的文字内容等;
- w (write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件);
- x (execute):该文件具有可以被系统执行的权限。
在Linux底下,文件是否能被执行,则是藉由是否具有x这个权限来决定的!跟文件名(扩展名)是没有绝对的关系的!文件具有w权限时,你可以修改文件的内容, 但并不具备有删除该文件本身的权限!对于文件的rwx来说, 主要都是针对文件的内容
而言。
权限对目录的意义
- r (read contents in directory): 表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!
-
w (modify contents of directory): 这个可写入的权限对目录来说,是很了不起的! 因为他表示你具有异动该目录结构列表的权限,也就是底下这些权限:
- 建立新的文件与目录
- 删除已经存在的文件与目录(不论该文件的权限为何!)
- 将已存在的文件或目录进行更名
- 搬移该目录内的文件、目录位置
- x (access directory):
目录的x代表的是用户能否进入该目录成为工作目录! 所谓的工作目录(work directory)就是你目前所在的目录!举例来说,当你登入Linux时, 你所在的家目录就是你当下的工作目录。而变换目录的指令是
cd
。
能不能进入某一个目录,只与该目录的x权限有关!工作目录对于指令的执行是非常重要的,如果你在某目录下不具有x的权限, 那么你就无法切换到该目录下,也就无法执行该目录下的任何指令,即使你具有该目录的r的权限。
很多朋友在架设网站的时候都会卡在一些权限的设定上,他们开放目录给因特网的任何人来浏览, 却只开放r的权限,如上面的范例所示那样,那样的结果就是导致网站服务器软件无法到该目录下读取文件(最多只能看到文件名), 最终用户总是无法正确的查阅到文件的内容(显示权限不足)。要注意:要开放目录给任何人浏览时,应该至少也要给予r及x的权限,但w权限不可随便给!
扩展阅读
上一篇: mklink让网盘同步不同文件夹