文件权限
1 文件权限对象
文件的权限针对三类对象进行定义
- owner 属主,缩写u
- group 属组,缩写g
- other 其他,缩写o
1.1 owner(文件拥有者)
由于Linux是个多用户多任务的系统,因此可能常常会有多人同时使用这部主机来 进行工作的情况发生, 为了考虑每个人的隐私权以及每个人喜好的工作环境,因此,这 个“文件拥有者”的角色就显的相当的重要了!。
拥有这个文件的用户,即文件拥有者
1.2 group(群组)
由一个或多个用户组成,每个用户都至少属于某一个群组。
1.3 other(群其)
除了拥有者以外的其他用户
2 文件权限
- r:Read 读
- w:Write 写
- x:execute 执行
3 获取文件权限
ls -a
[root@VM-24-3-centos ~]# ls -al
total 48
dr-xr-x---. 5 root root 4096 Nov 7 16:04 .
dr-xr-xr-x. 19 root root 4096 Nov 7 16:37 ..
-rw-------. 1 root root 281 Nov 7 16:37 .bash_history
-rw-r--r--. 1 root root 18 May 11 2019 .bash_logout
-rw-r--r--. 1 root root 176 May 11 2019 .bash_profile
-rw-r--r--. 1 root root 176 May 11 2019 .bashrc
drwx------ 3 root root 4096 Nov 7 16:04 .config
-rw-r--r--. 1 root root 100 May 11 2019 .cshrc
drwxr-xr-x 2 root root 4096 Jan 23 2022 .pip
-rw-r--r-- 1 root root 73 Nov 7 15:54 .pydistutils.cfg
drwx------. 2 root root 4096 Nov 7 15:54 .ssh
-rw-r--r--. 1 root root 129 May 11 2019 .tcshrc
文件属性的示意图
_rwxrwxrwx
由10位组成
- 第一位:类型(目录_,文件d,链接l)
- 第2-4位:文件拥有者权限
- 第5-7位:文件所属群组对于文件的权限
- 第8-10位:其他用户对于文件的权限
4 文件权限对于文件与目录的不同意义
4.1 文件
- r:Read 读取文件内容
- w:Write 修改文件内容
- x:execute 可以执行文件内容,一般针对与二进制文件
4.2 目录
- r:查看目录下的文件列表
- w:删除和创建目录下的文件
- x:可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容(基础权限)
5 文件属性与权限的修改
- chgrp :改变文件所属群组
- chown :改变文件拥有者
- chmod :改变文件的权限, SUID, SGID, SBIT等等的特性
5.1 chgrp(改变文件所属群组)
注:修改的要被改变的群组名称必须要 在/etc/group文件内存在。
chgrp [选项]... 用户组 文件。
- -c, --changes 类似 verbose 选项,但仅在做出修改时进行报告
- -R, --recursive 递归操作文件和目录
示例
当一个目录下有一个document.txt文件 属于root组
将document的所属组改为mail
# document.txt 属于root组
[root@VM-24-3-centos ~]# ls -l document.txt
-rw-r--r-- 1 root root 0 Nov 7 16:57 document.txt
# 修改所属组
[root@VM-24-3-centos ~]# chgrp mail document.txt
# 再次查看发现已经被修改
[root@VM-24-3-centos ~]# ls -l document.txt
-rw-r--r-- 1 root mail 0 Nov 7 16:57 document.txt
5.2 chown(修改文件拥有者)
注:使用者必须是 已经存在系统中的帐号,也就是在/etc/passwd 这个文件中有纪录的使用者名称才能改变.
chown [选项]... 账户名称 文件或目录
chown [选项] 帐号名称:群组名称 文件或目录
- -c, --changes 类似 verbose 选项,但仅在做出修改时进行报告
- -R, --recursive 递归操作文件和目录
示例
当一个目录下有一个document.txt文件 属于root所有者
将document的所有者改为mail
# document.txt 属于root 用户
[root@VM-24-3-centos ~]# ls -l document.txt
-rw-r--r-- 1 root mail 0 Nov 7 16:57 document.txt
#修改所有者
[root@VM-24-3-centos ~]# chown mail document.txt
# 再次查看发现已经被修改
[root@VM-24-3-centos ~]# ls -l document.txt
-rw-r--r-- 1 mail mail 0 Nov 7 16:57 document.txt
5.3 chmod(修改权限)
- chmod [-R] xyz 文件或目录
5.3.1 数字类型改变文件权限
Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的 read/write/execute权限
我们可以使用数字来代表各个权 限,各权限的分数对照表如下:
权限 | 权重 |
---|---|
r | 4 |
w | 2 |
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
所以等一下我们设置权限的变更时,该文件的权限数字就是770啦!变更权限的指令 chmod的语法是这样的:
chmod [-R] xyz 文件或目录
5.3.2 符号类型改变文件权限
身份:
- user:u
- group:g
- others:o
-all:a(所有身份)
操作:
- +(加入)
- -(除去)
- =(设置
示例:
# user 加上r权限:u+r
# group 加上x权限 g+x
# others 减去w权限 o-x
# user 设置rw权限 u=rx
# 所有设置rw a+rw
# document.txt 设置权限rw-rw-r-x
chmod u=rw,g=rw,o=rx document.txt
# document.txt 权限为rw-rw-r-x 减去group的w权限,设置为权限为rw-r--r-x
chmod g-w document.txt
评论区