Linux 文件属性
Linux做最突出的地方之一是它的多用户、多任务环境。这一点的最重要的出发点就是安全机制。先看下例:
场景:公司里有两个项目组:小组A和小组B。为了保密起见,小组内的进度、文档、程序都有小组内公开。比如小组A中,小组内的成员可以相互查看彼此的文件,但是小组内成 员都有自己的抽屉,里面有自己的隐私文件,不允许是看不了的(抽屉锁着)。小组B里的人相对于小组A来说是其他人。如果没进过小组成员的同意,是看不到A、B或C的资料的。这里边有个执掌大权的boss,他拥有无所不能的权利(包括查看用户的抽屉)。
这就是Linux用户及用户组的现实写照。
用户:A、B、C、甲、乙都是用户,就是主体
用户组:有一个或多个用户组成的
其他人:小组B内的成员甲、乙相对于A组的成员就是其他人;反之亦是。
查看下文件的属性(7个):ls -al
1 2 3 4 5 6 7
权限 连接 拥有者 用户组 文件大小 文件最近修改时间 文件名
重点看下属性1:
文件类型:-,文件 d,目录 l,链接文件 b,块设备文件(硬盘) c,字符设备文件(键盘)
示例:drwxr-xr-x:文件名为目录(d),该目录拥有者具有读写执行权限,该组的其他成员具有读和执行的权限,其他用户具有读和执行权限
更改文件属性:
- 更改文件所属用户组:chgrp [-R] 组名 文件名——-R(针对目录)是递归的把目录下的文件、目录全部改变为目标权限。change group
- 更改文件所属拥有者:chown 拥有者 文件名——change owner
- 更改属性(后9个):chmod 属性 文件名
注意:参数 -R 递归的改变目录下的所有文件
例如:
- 改变文件文件hello的所属组为hel: chgrp hel hello
- 改变文件hello的拥有者为user1: chown hello user1
- 改变文件hello的属性为拥有者"可读可写可执行”,组内其他成员为“可读可写”,其他人为“可读”:chmod rwxrwxrw-r-- helo
(3中)此时的权限也可以用数字表示。具体为:
- r:4
- w:2
- x:1
这样上面(4+2+1 4+2 4)也可以这样表示:chmod 764 helo
可读可写可执行对于文件来说没有什么疑义,但是针对目录来说就有很大的不同。
目录属性的意义:
r——(read the contens of the directory)表示可以读取目录结构清单的权限
w——(modify the contents of the directory)表示可以改变目录清单的权限,包括
- 建立新的文件&目录
- 删除已存在的文件&目录
- 将已存在的文件&目录改名
- 移动目录内文件&目录的位置
x——(access the directory)表示可以进入该目录的权利,如果没有此权限,即使有“可读可写”的权利也白费,因为连进都进不去,何谈读与改写。
示例: