CentOS之基本权限操作
一、权限介绍
权限是操作系统用来限制资源访问的机制,权限一般分为读、写、执行。
系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。
每个进程都是以某个用户的身份运行,所以进程的权限与该用户的权限一样,用户的权限越大,该进程所拥有的权限也就越大。
二、文件权限
| 权限 | 对文件的影响 | 对目录的影响 |
|---|---|---|
| r(读取) | 可读取文件内容 | 可列出目录内容 |
| w(写入) | 可以修改文件内容 | 可在目录创建、删除文件 |
| x(执行) | 可以作为命令执行 | 可访问目录内容 |
所以,目录必须拥有 "x" 权限才可查看其内容。很多时候,执行权限 "x" 对于目录而言也叫浏览权限。仅有 "r" 权限是无法查看目录内容的(因为连访问都做不到)。
三、UGO模型
Linux 权限基于 UGO 模型进行控制:
- U 代表 User,是文件或文件夹所属用户的权限;G 代表 Group,是文件或文件夹所属组的权限;O 代表 Other,是其他用户对文件或文件夹的权限
- 每一个文件的权限基于 UGO 模型进行设置
- 权限三个一组(rwx),对应 UGO 分别设置(总共有 3 个组 9 个权限)
- 每一个文件拥有一个所属用户和所属组,对应 U、G模型;不属于该文件所属用户和所属组的使用 O(Other)模型对应的权限
- 权限的三类对象
命令 ls -l 可以查看当前目录下所有文件的详细信息
[root@localhost abcs]# ls -l drwxr-xr-x. 2 root root 6 1月 5 17:48 dir1 -rw-r--r--. 1 root root 0 1月 5 17:48 file1
权限操作
文件属性详细介绍
chmod object(u,g,o,a)赋值符(+,-,=)权限类型(r,w,x) 文件(目录) ----- ----------------------------------------- --------- 命令 对象加减权限操作 文件或目录 -R 给目标文件下的目录(子文件)赋予同样权限 ( chmod -R u+r FilePath ) [root@localhost abcs]# ll 总用量 0 drwxr-xr-x. 2 root root 6 1月 5 17:48 dir1 -rw-r--r--. 1 root root 0 1月 5 17:48 file1 -rw-r--r--. 1 root root 0 1月 5 17:48 file2 ---------- - ---- ---- - ------------- ---- 1 2 3 4 5 6 7 1. 类型和权限 (11个) drwxr-xr-x. ('-' or 'd' 文件类型 '-' 普通文件 'd' 目录) 属主 属组 其他人 rwx rwx rwx u g o 2. 链接 (略) 3. 属主 4. 属组 5. 大小(字节) 6. 日期 7. 文件名
-
授权高级用法
chmod number FileName chmod -R number FileName [root@CatdeXin-PC 桌面]# ll 总用量 0 -rw-r--r--. 1 root root 0 1月 6 09:28 a [root@CatdeXin-PC 桌面]# chmod 771 a [root@CatdeXin-PC 桌面]# ll 总用量 0 -rwxrwx--x. 1 root root 0 1月 6 09:28 a
-
修改文件的属主和属组
chown UserName.GourpName FileName chown UserName FileName # 只修改属主 chown .GourpName FileName # 只修改属组 [root@CatdeXin-PC 桌面]# ll 总用量 0 -rwxrwx--x. 1 root root 0 1月 6 09:28 a [root@CatdeXin-PC 桌面]# chown user01.hr a [root@CatdeXin-PC 桌面]# ll 总用量 0 -rwxrwx--x. 1 user01 hr 0 1月 6 09:28 a # 只能修改属组(了解) chgrp GourpName FileName
ACL权限 (access control list)
ACL的全称是 Access Control List (访问控制列表) ,一个针对文件/目录的访问控制列表。它在UGO权限管理的基础上为文件系统提供一个额外的、更灵活的权限管理机制。它被设计为UNIX文件权限管理的一个补充。ACL允许你给任何的用户或用户组设置任何文件/目录的访问权限。
既然是作为UGO权限管理的补充,ACL自然要有UGO办不到或者很难办到的本事,例如:
- 可以针对用户来设置权限
- 可以针对用户组来设置权限
- 子文件/目录继承父目录的权限
检查是否支持ACL
ACL需要Linux内核和文件系统的配合才能工作,当前我们能见到的大多数Linux发行版本默认都是支持的。但最好还是能够先检查一下
sudo tune2fs -l /dev/sda1 |grep "Default mount options:" Default mount options: user_xattr acl
我们能够看到默认情况下(Default mount options:)已经加入 acl 支持了
如何设置ACL
我们可以使用setfacl和getfacl命令来设置或观察文件/目录的acl权限
setfacl
etfacl [-bkRd] [{-m|-x} acl参数] 文件/目录名
-m :配置后面的 acl 参数给文件/目录使用,不可与 -x 合用;
-x :删除后续的 acl 参数,不可与 -m 合用;
-b :移除所有的 ACL 配置参数;
-k :移除默认的 ACL 参数;
-R :递归配置 acl;
-d :配置“默认 acl 参数”,只对目录有效,在该目录新建的数据会引用此默认值;
getfacl
getfacl 文件/目录名
下面我们通过一些示例来演示 ACL 权限的基本用法
# 查看该文件ACL权限表 getfacl FileName # 设置ACL权限 setfacl -m u/g:UserName/GroupName:r/w/x FileName ------- -- ---------------------------- -------- 命令 参数 用户/组:用户名/组名 文件/目录 # 清楚一条ACL权限 setfacl -x u/g:UserName/GroupName FileName # 清楚所有扩展出来的权限 setfacl -b FileName [root@CatdeXin-PC 桌面]# setfacl -m u:user01:rwx aaa [root@CatdeXin-PC 桌面]# getfacl aaa # file: aaa # owner: root # group: root user::rw- user:user01:rwx group::r-- mask::rwx other::r-- [root@CatdeXin-PC 桌面]# setfacl -m g:hr:r-x aaa [root@CatdeXin-PC 桌面]# setfacl -m o::- aaa [root@CatdeXin-PC 桌面]# setfacl -x g:hr aaa
其他权限
suid是针对文件所设置的一个特别的权限
功能: 使调用文件的用户,临时具备属主的能力
# 给cat赋权可以查看root下文件 [root@CatdeXin-PC ~]# ll /usr/bin/cat -rwxr-xr-x. 1 root root 54080 8月 20 2019 /usr/bin/cat [root@CatdeXin-PC ~]# chmod u+s /usr/bin/cat [root@CatdeXin-PC ~]# ll /usr/bin/cat -rwsr-xr-x. 1 root root 54080 8月 20 2019 /usr/bin/cat [root@CatdeXin-PC ~]# su BBB [BBB@CatdeXin-PC /]$ cat /root/file1.txt holle word # 做完实验删掉s权限 [root@CatdeXin-PC ~]# chmod u-s /usr/bin/cat [root@CatdeXin-PC ~]# ll /usr/bin/cat -rwxr-xr-x. 1 root root 54080 8月 20 2019 /usr/bin/cat
权限中的S与s
# 无执行权限设置suid 是大S [root@CatdeXin-PC ~]# ll file1.txt -rw-r--r--. 1 root root 11 1月 13 23:38 file1.txt [root@CatdeXin-PC ~]# chmod u+s file1.txt [root@CatdeXin-PC ~]# ll file1.txt -rwSr--r--. 1 root root 11 1月 13 23:38 file1.txt [root@CatdeXin-PC ~]# chmod u-s file1.txt [root@CatdeXin-PC ~]# ll file1.txt -rw-r--r--. 1 root root 11 1月 13 23:38 file1.txt # 赋予执行权限后 设置suid结果是小s [root@CatdeXin-PC ~]# chmod u+x file1.txt [root@CatdeXin-PC ~]# ll file1.txt -rwxr--r--. 1 root root 11 1月 13 23:38 file1.txt [root@CatdeXin-PC ~]# chmod u+s file1.txt [root@CatdeXin-PC ~]# ll file1.txt -rwsr--r--. 1 root root 11 1月 13 23:38 file1.txt
文件属性chattr
# 查看文件属性 [root@CatdeXin-PC ~]# lsattr file1.txt ---------------- file1.txt # 设置文件属性 [root@CatdeXin-PC ~]# chattr +i file1.txt [root@CatdeXin-PC ~]# lsattr file1.txt ----i----------- file1.txt # 查看下效果 [root@CatdeXin-PC ~]# rm -rf file1.txt rm: 无法删除"file1.txt": 不允许的操作 # 取消权限 [root@CatdeXin-PC ~]# chattr -i file1.txt [root@CatdeXin-PC ~]# lsattr file1.txt ---------------- file1.txt
进程掩码umask
umask命令指定在建立文件时预设的权限掩码
umask可用来设定权限掩码。权限掩码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限
umask 查看预设的权限掩码 umask 掩码参数 # 修改权限掩码 chmod 掩码 FileName 一般掩码由三个位置组成 实际上有第四个 chmod 7777 FileName 特别 属主 属组 其他人 一般不使用特别为位 [root@CatdeXin-PC ~]# umask 0022 系统在创建目录时 用0777减去 权限掩码 0777 - 0022 = 0755 所以系统创建目录的默认权限是0755 创建文件时 在用 0755 减去 0111 0755 - 0111 = 0644 所以系统创建文件的默认权限是0644

浙公网安备 33010602011771号