Linux文件权限
Linux 一般将文件可存取的身份分为三个类别,分别是
owner
/group
/others
,且三种身份各有read
/write
/execute
等权限
# 一、使用者和群组
# 1、Linux 用户身份与群组记录的文件
默认的情况下,所有的系统上的账号与一般身份使用者,还有那个root 的相关信息,都是记录在 /etc/passwd
这个文件内的。至于个人的密码则是记录在 /etc/shadow
这个文件下。此外,Linux
所有的组名都纪录在 /etc/group
内! 这三个文件记录了Linux 系统里面账号、密码、群组。
# 二、文件权限
# 1、文件属性
通过 ls
指令可以查看文件
第一栏代表这个文件的类型与权限(permission):这一栏共有十个字符
- 第一个字符代表这个文件是『目录、文件或链接文件等等』:
- 当为[ d ]则是目录,例如上表档名为『.config』的那一行;
- 当为[ - ]则是文件,例如上表档名为『initial-setup-ks.cfg』那一行;
- 若是[ l ]则表示为连结档(快捷方式)(link file);
- 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
- 接下来的字符中,以三个为一组,且均为『rwx』的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)
。要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]。
- 第一组为『文件拥有者可具备的权限』,以『initial-setup-ks.cfg』那个文件为例, 该文件的拥有者可以读写,但不可执行;
- 第二组为『加入此群组的账号的权限』;
- 第三组为『非本人且没有加入本群组外的其他账号的权限』。
- 第一个字符代表这个文件是『目录、文件或链接文件等等』:
第二栏表示有多少档名连结到此节点(i-node)。
第三栏表示这个文件(或目录)的『拥有者账号』。
第四栏表示这个文件的所属群组。
第五栏为这个文件的容量大小,默认单位为bytes。
第六栏为这个文件的建档日期或者是最近的修改日期。
第七栏为这个文件的名称。
# 2、如何改变文件属性与权限
chgrp :改变文件所属群组
chown :改变文件拥有者
chmod :改变文件的权限
# 改变文件所属群组 chgrp
chgrp
即 change group
的缩写。要修改的群组必须存在于 /etc/group
[root@study ~]# chgrp [-R] dirname/filename ...
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录
都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。
范例:
[root@study ~]# chgrp users initial-setup-ks.cfg
[root@study ~]# ls -l
-rw-r--r--. 1 root users 1864 May 4 18:01 initial-setup-ks.cfg
[root@study ~]# chgrp testing initial-setup-ks.cfg
chgrp: invalid group: `testing' <== 发生错误讯息啰~找不到这个群组名~
2
3
4
5
6
7
8
9
10
# 改变文件拥有者 chown
chown
即 change owner
的缩写。要修改的用户必须存在于 /etc/passwd
[root@study ~]# chown [-R] 账号名称 文件或目录
[root@study ~]# chown [-R] 账号名称:组名 文件或目录
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更
范例:将 initial-setup-ks.cfg 的拥有者改为bin 这个账号:
[root@study ~]# chown bin initial-setup-ks.cfg
[root@study ~]# ls -l
-rw-r--r--. 1 bin users 1864 May 4 18:01 initial-setup-ks.cfg
范例:将 initial-setup-ks.cfg 的拥有者与群组改回为root:
[root@study ~]# chown root:root initial-setup-ks.cfg
[root@study ~]# ls -l
-rw-r--r--. 1 root root 1864 May 4 18:01 initial-setup-ks.cfg
2
3
4
5
6
7
8
9
10
11
12
🤔什么时候要使用chown
呢?
复制文件给其他人时, 我们使用最简单的 cp
指令,但是复制之后的新文件的属性没变,其他人还是没有权限,这个时候就可以使用 chown
了。
# 改变权限 chmod
- 数字类型改变文件权限
- r:4
- w2
- x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
[root@study ~]# chmod [-R] xyz 文件或目录
选项与参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更
2
3
4
符号类型改变文件权限
基本上就九个权限分别是
user
group
others
三种身份啦!那么我们就可以用u
,g
,o
来代表三种身份的权限!此外,a
则代表all 全部的身份!那么读写的权限就可以写成r
,w
,x
。