金鱼哥戏说RHCSA认证:十、文件权限管理

举报
金鱼哥 发表于 2022/09/13 17:00:24 2022/09/13
【摘要】 第十章 文件权限管理

🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家,阿里云社区·专家博主
📚个人资质:CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL😜
💬格言:努力不一定成功,但要想成功就必须努力🔥

🎈支持我:可点赞👍、可收藏⭐️、可留言📝


本章节介绍文件权限管理。工作中实在有太多对权限管理理解不好的例子,所以,打好基础,方能稳固向前。


在这里插入图片描述

📜10.1 文件所有者和属组属性操作

📑10.1.1 设置文件的所有者chown

chown 命令可以修改文件的属主,也可以修改文件属组

格式:

chown [OPTION]... [OWNER]:[GROUP] FILE...
chown [OPTION]... --reference=RFILE FILE...

用法说明:

OWNER #只修改所有者
OWNER:GROUP #同时修改所有者和属组
:GROUP #只修改属组,冒号也可用 . 替换
--reference=RFILE #参考指定的的属性,来修改
-R #递归,此选项慎用,非常危险!

范例:

[root@servera ~]# chown student.student f3
[root@servera ~]# ll f3
-rw-r--r--. 1 student student 0 Mar 27 15:35 f3

[root@servera ~]# ll f4
-rw-r--r--. 1 root root 0 Mar 27 15:35 f4
[root@servera ~]# chown --reference=f4 f3
[root@servera ~]# ll f3
-rw-r--r--. 1 root root 0 Mar 27 15:35 f3

[root@servera ~]# chown student:student f3
[root@servera ~]# ll f3
-rw-r--r--. 1 student student 0 Mar 27 15:35 f3

[root@servera test]# pwd
/root/test
[root@servera test]# ll
total 4
-rw-r--r--. 1 root root    0 Mar 27 16:37 a
-rw-r--r--. 1 root root 2716 Mar 27 16:40 pass
drwxr-xr-x. 2 root root   31 Mar 27 16:36 test2
[root@servera test]# chown -R student.student  ~/test
[root@servera test]# ll -d
drwxr-xr-x. 3 student student 40 Mar 27 16:47 .
[root@servera test]# ll
total 4
-rw-r--r--. 1 student student    0 Mar 27 16:37 a
-rw-r--r--. 1 student student 2716 Mar 27 16:40 pass
drwxr-xr-x. 2 student student   31 Mar 27 16:36 test2
[root@servera test]# cd test2/
[root@servera test2]# ll
total 0
-rw-r--r--. 1 student student  0 Mar 27 16:05 a

📑10.1.2 设置文件的属组信息chgrp

chgrp 命令可以只修改文件的属组

格式

chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...

-R 递归

范例:

[root@servera test]# chgrp student  .
[root@servera test]# ll -d
drwxr-xr-x. 3 root student 40 Mar 27 16:47 .

📜10.2 文件权限

📑10.2.1 文件权限说明

文件的权限主要针对三类对象进行定义

owner 拥有者, u
group 属组, g
other 其他, o

注意:用户的最终权限,是从左向右进行顺序匹配,即,所有者,所属组,其他人,一旦匹配权限立即
生效,不再向右查看其权限

每个文件针对每类访问者都定义了三种常用权限

r Readable
w Writable
x eXcutable

对文件的权限:

r 可使用文件查看类工具,比如:cat,可以获取其内容
w 可修改其内容
x 可以把此文件提请内核启动为一个进程,即可以执行(运行)此文件(此文件的内容必须是可执行)

对目录的权限:

r 可以使用ls查看此目录中文件列表
w 可在此目录中创建文件,也可删除此目录中的文件,而和此被删除的文件的权限无关
x 可以cd进入此目录,可以使用ls -l查看此目录中文件元数据(须配合r权限),属于目录的可访问的最
小权限
X 只给目录x权限,不给无执行权限的文件x权限

数学法的权限
在这里插入图片描述

二进制数字

--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7

例如:

rw-r----- 640
rwxr-xr-x 755

📑10.2.2 修改文件权限chmod

格式

chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
#参考RFILE文件的权限,将FILE的修改为同RFILE
chmod [OPTION]... --reference=RFILE FILE...

说明:

修改指定一类用户的所有权限
u= g= o= ug= a= u=,g=
修改指定一类用户某个或某个权限
u+ u- g+ g- o+ o- a+ a- + -
-R: 递归修改权限

范例: 设置 X 权限

[root@servera test2]# chmod a+x -R .
[root@servera test2]# ll
total 0
-rwxr-xr-x. 1 root root  0 Mar 27 16:05 a
lrwxrwxrwx. 1 root root 10 Mar 27 16:36 test.lnk -> /root/test
[root@servera test2]# ll -d
drwxr-xr-x. 2 root root 31 Mar 27 16:36 .

[root@servera test]# chmod -R a+X .
[root@servera test]# ll 
total 4
-rw-r--r--. 1 root root    0 Mar 27 16:37 a
-rw-r--r--. 1 root root 2716 Mar 27 16:40 pass
drwxr-xr-x. 2 root root   31 Mar 27 16:36 test2

r=4 w=2 x=1


📑10.2.3 新建文件和目录的默认权限

umask 的值可以用来保留在创建文件权限

实现方式:

  • 新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶
    数不变
  • 新建目录的默认权限: 777-umask

非特权用户umask默认是 002
root的umask 默认是 022
查看umask

umask
#模式方式显示
umask –S
#输出可被调用
umask –p

修改umask

umask #

范例:

umask 002
umask u=rw,g=r,o=

持久保存umask

  • 全局设置: /etc/porfile
  • 用户设置:~/.bashrc

思考题:

当usmak=233的时候,创建文件的权限是多少?创建目录的权限是多少?

常用范例:

#临时设置umask创建文件或目录后自动恢复为原来的umask
[root@centos8 ~]#umask
0022
[root@centos8 ~]#( umask 666; touch /data/f1.txt )
[root@centos8 ~]#umask
0022
[root@centos8 ~]#ll /data/f1.txt
---------- 1 root root 0 Mar 27 14:55 /data/f1.txt

📑10.2.4 Linux文件系统上的特殊权限

前面介绍了三种常见的权限:r, w, x 还有三种特殊权限:SUID, SGID, Sticky

🔖10.2.4.1 特殊权限SUID

前提:进程有属主和属组;文件有属主和属组

  1. 任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限
  2. 启动为进程之后,其进程的属主为发起者,进程的属组为发起者所属的组
  3. 进程访问文件时的权限,取决于进程的发起者

(a) 进程的发起者,同文件的属主:则应用文件属主权限
(b) 进程的发起者,属于文件属组;则应用文件属组权限
© 应用文件“其它”权限
二进制的可执行文件上SUID权限功能:

chmod u+s FILE...
chmod 6xxx FILE
chmod u-s FILE...

范例:

[root@servera test]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 33544 Dec 14  2019 /usr/bin/passwd

说白了就是其他用户以root用户身份运行命令


🔖10.2.4.2 特殊权限SGID

二进制的可执行文件上SGID权限功能:

  • 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限
  • 启动为进程之后,其进程的属组为原程序文件的属组

SGID权限设定:

chmod g+s FILE...
chmod 2xxx FILE
chmod g-s FILE...

目录上的SGID权限功能:
默认情况下,用户创建文件时,其属组为此用户所属的主组,一旦某目录被设定了SGID,则对此目录有
写权限的用户在此目录中创建的文件所属的组为此目录的属组,通常用于创建一个协作目录
SGID权限设定:

chmod g+s FILE...
chmod 2xxx FILE
chmod g-s FILE...

🔖10.2.4.3 特殊权限 Sticky 位

具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权
在目录设置Sticky 位,只有文件的所有者或root可以删除该文件
sticky 设置在文件上无意义
Sticky权限设定:

chmod o+t DIR...
chmod 1xxx DIR
chmod o-t DIR...

数字位:

GUID=6

SGID=2

sticky=1

权限位映射
SUID: user,占据属主的执行权限位
s:属主拥有x权限
S:属主没有x权限
SGID: group,占据属组的执行权限位
s: group拥有x权限
S:group没有x权限
Sticky: other,占据other的执行权限位
t:other拥有x权限
T:other没有x权限


📑10.2.5 设定文件特殊属性

设置文件的特殊属性,可以访问 root 用户误操作删除或修改文件
不能删除,改名,更改

chattr +i

只能追加内容,不能删除,改名

chattr +a

显示特定属性

lsattr

📑10.2.6 访问控制列表

🔖10.2.6.1 ACL权限功能

ACL:Access Control List,实现灵活的权限管理
除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
rhel7 默认创建的xfs和ext4文件系统具有ACL功能
rhel7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加

tune2fs -o acl /dev/sdb1
mount -o acl /dev/sdb1 /mnt/test

ACL生效顺序:
所有者,自定义用户,所属组|自定义组,其他人


🔖10.2.6.2 ACL相关命令

setfacl 可以设置ACL权限

getfacl 可查看设置的ACL权限

范例:

[root@servera cur]# setfacl -m u:hao:rw test
[root@servera cur]# getfacl test
# file: test
# owner: root
# group: root
user::r--
user:hao:rw-
group::r--
mask::rw-
other::r--

范例:

getfacl file |directory
setfacl -m u:hao:rwx file|directory
setfacl -m g:admins:rw file| directory
setfacl -x u:hao file |directory
#清除所有ACL权限
setfacl -b file1

–set 选项会把原有的ACL项都删除,用新的替代,需要注意的是一定要包含UGO的设置,不能象-m一样只是添加ACL就可以

范例:

setfacl --set u::rw,u:hao:rw,g::r,o::- file1

🔖10.2.6.3 mask 权限

  • mask只影响除所有者和other的之外的人和组的最大权限
  • mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限(Effective Permission)
  • 用户或组的设置必须存在于mask权限设定范围内才会生效

范例:

setfacl -m mask::rx file

范例:

[root@centos8 data]#ll f1.txt
-rw-rw-r--+ 1 root root 728 Dec 18 14:51 f1.txt
[root@centos8 data]#chmod g=r f1.txt
[root@centos8 data]#ll f1.txt
-rw-r--r--+ 1 root root 728 Dec 18 14:51 f1.txt
[root@centos8 data]#getfacl f1.txt
# file: f1.txt
# owner: root
# group: root
user::rw
user:hao:---
group::r--
group:admins:-w- #effective:---
mask::r--
other::r--
[root@centos8 data]#setfacl -m mask::rw f1.txt
[root@centos8 data]#getfacl f1.txt
# file: f1.txt
# owner: root
# group: root
user::rw
user:hao:---
group::r--
group:admins:-w
mask::rw
other::r--
[root@centos8 data]#setfacl -m u:hao:rwx f1.txt
[root@centos8 data]#getfacl f1.txt
# file: f1.txt
# owner: root
# group: root
user::rwuser:
hao:rwx
group::r--
group:admins:-w
mask::rwx
other::r--
[root@centos8 data]#setfacl -m mask::rw f1.txt
[root@centos8 data]#getfacl f1.txt
# file: f1.txt
# owner: root
# group: root
user::rw
user::hao:rwx #effective:rw
group::r--
group:admins:-w
mask::rw
other::r--

📜10.3 普通用户权限提升

📑10.3.1 sudo 介绍

sudo 即superuser do,允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。

在最早之前,一般用户管理系统的方式是利用su切换为超级用户。但是使用su的缺点之一在于必须要先告知超级用户的密码。sudo于1980年前后推出,sudo使一般用户不需要知道超级用户的密码即可获得权限。首先超级用户将普通用户的名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信息,登记在特殊的文件中(通常是/etc/sudoers),即完成对该用户的授权(此时该用户称为“sudoer”);在一般用户需要取得特殊权限时,其可在命令前加上“sudo”,此时sudo将会询问该用户自己的密码(以确认终端机前的是该用户本人),回答后系统即会将该命令的进程以超级用户的权限运行。之后的一段时间内(默认为5分钟,可在/etc/sudoers自定义),使用sudo不需要再次输入密码。

由于不需要超级用户的密码,部分Unix系统甚至利用sudo使一般用户取代超级用户作为管理帐号,例如Ubuntu、Mac OS X等。

sudo特性:

  • sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系
    管理员
  • sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志
    服务器
  • sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得
    了一张存活期为5分钟的票
  • sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。
    它所存放的位置默认是在/etc/sudoers,属性必须为0440

📑10.3.2 sudo 组成

包:sudo
配置文件:/etc/sudo.conf
授权规则配置文件:
/etc/sudoers
/etc/sudoers.d
安全编辑授权规则文件和语法检查工具
/usr/sbin/visudo

范例:

#检查语法
visudo -c

📑10.3.3 visudo

visudo实际为编辑/etc/sudoers文件专用工具,有语法检测功能

范例:

#创建用户别名
# User_Alias ADMINS = jsmith, mikem
User_Alias TEST = student, hao

#添加用户并指定获权命令
## Allow root to run any commands anywhere   
## 允许root用户执行任意路径下的任意命令  
root    ALL=(ALL)   ALL  
hao     ALL=(ALL)   /usr/sbin/fdisk NOPASSWD:/usr/sbin/  
## Allows members of the 'sys' group to run networking, software,   
## service management apps and more.  
## 允许sys中户组中的用户使用NETWORKING等所有别名中配置的命令  
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS  
#添加组和别名指定获权命令(别名不需要加%%student ALL=(ALL) /usr/sbin/fdisk
TEST ALL=(ALL)  NOPASSWD:/usr/sbin/parted

💡总结

RHCSA认证作为基础认证,涉及的基础内容需要大家好好进行学习并巩固。有良好的基础才能更上一层楼。
好好加油,可以噶🤪。

以上就是【金鱼哥】对 第十章 文件权限管理 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。

💾红帽认证专栏系列:
RHCSA专栏:戏说 RHCSA 认证
RHCE专栏:戏说 RHCE 认证
此文章收录在RHCA专栏:RHCA 回忆录

如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。

如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。