-
拥有者及群组
- 由于 Linux 是个多人多任务的系统,因此可能常常会有多人同时使用这部主机来进行工作的情况发生, 为了考虑每个人的隐 私 权以及每个人喜好的工作环境,Linux有拥有者、群组、其他人三种标签分类。
- 拥有者(User):假设小明开发了一款软件,那么小明就是这个软件的拥有者。他可以将权限修改为只有他自己可以读写执行这个软件。
- 群组(Group):随着时间的推移,小明一个人无法维护此软件,他需要一个团队协同他一起对该软件进行维护,此时这个团队就是群组的概念。
- 其他人(Others):小明觉得这款软件非常好用,他决定将这个软件推广给朋友使用。此时的朋友就是其他人。
在Linux中,任何一个文件都具有『User, Group 及 Others』三种身份的个别权限。此外,root账户对所有文件都有权限。
-
Linux文件权限
- ls指令可查看当前目录下的所有文件及文件夹,ls -al可以展示所有文件夹得详细属性。
其中,第一列为文件类型与权限
如图所示: 第一个字符代表这个文件是『目录、文件或链接文件等等』:
- 当为[ d ]则是目录;
- 当为[ - ]则是文件;
- 若是[ l ]则表示为连结档(link file);
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置) 以上图为例表示该文件是一个文件夹。
第二个字符中,以三个为一组,且均为『rwx』 的三个参数的组合:
- r表示有读权限(read)
- w表示有写权限(write)
- x表示有执行权限(execute)
这三个权限的位置不会发生改变,若没有权限,则以‘-’表示。
其中第一组为文件拥有者对其的权限,以上图为例表示root用户对其可读可写可执行。第二组为root群组对文件拥有读和执行的权限,但是不可以写该文件。第三组为其他人,权限与第二组相同。
第二列为连接数。表示有多少文件名连结到此节点;
第三列表示这个文件(或目录)的『拥有者账号』;
第四列表示这个文件的所属群组;
第五列为这个文件的容量大小,默认单位为 bytes;
第六列为这个文件的建档日期或者是最近的修改日期;
第七列为该文件的文件名。
例题: 假设 test1, test2, test3 同属于 testgroup 这个群组,如果有下面的两个文件,请说明两个文件的拥有者与其相关的权限为何? -rw-r--r-- 1 root root 238 Jun 18 17:22 test.txt -rwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 ping_tsai 答: 文件 test.txt 的拥有者为 root,所属群组为 root。至于权限方面则只有 root 这个账号可以存取此文件,其他人则仅能读此文件; 另一个文件 ping_tsai 的拥有者为 test1,而所属群组为 testgroup。其中:test1 可以针对此文件具有可读可写可执行的权力;而同群组的 test2, test3 两个人与 test1 同样是 testgroup 的群组账号,则仅可读可执行但不能写(亦即不能修改);至于没有加入 testgroup 这一个群组的其他人则仅可以读,不能写也不能执行!
-
改变文件权限与属性
chgrp :改变文件所属群组
如图将root群组改变成tt群组
chown :改变文件拥有者
将文件拥有者由root改为tt,-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。
将文件拥有者和群组改回root,-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更。
chmod :改变文件的权限
给tt群组加上写权限
改变文件权限的方式常有的有两种: 1.数字类型更改文件权限。各权限的分数对照表如下:r:4、w:2、x:1每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的, 例如当权限为: [drwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others= --- = 0+0+0 = 0
2.符号类型改变文件权限。我们可以由 u, g, o 来代表三种身份的权限。假如我们要『设定』一个文件的权限成为『drwxr-xr--』时: