Linux权限管理详解

目录:权限介绍
一、修改权限命令
1.修改读写执行权限
  数字权限    
2.修改所有者
3.修改所属组
二、ACL权限
1.ACL权限简介与开启
2.ACL权限查看与设定
3.ACL最大有效权限与删除
4.ACL权限默认与递归
三、文件特殊权限
1.SetUID
2.SetGID
3.Sticky BIT
四、文件系统属性chattr权限
修改 chattr
查看 lsattr

一、权限介绍

Linux中的权限位共有10位,‌每一位都代表着不同的含义

1- 文件类型 -:普通文件 d:目录文件 l:软链接文件 b:块设备文件。存储设备都是这种文件,如分区文件/dev/sda1 c:字符设备文件。输入设备一般都是这种文件类型   键盘鼠标

2-4位:‌表示文件所有者(‌用u表示)‌的权限,‌包括读(r)、‌写(w)和执行(x)权限。‌

5-7位:‌代表文件所属组(‌用g表示)‌的权限,‌同样使用r、‌w、‌x表示。‌

8-10位:‌代表其他人(‌用o表示)‌的权限,‌也使用r、‌w、‌x表示。

 --如图所示-- 

最左边的就是权限

此外,‌Linux中的权限还可以通过数字来表示,‌其中:‌

4代表读(r)权限;‌

2代表写(w)权限;‌

1代表执行(x)权限。

二、修改读写执行权限

语法:chmod [选项] 权限模式 文件名 -R 递归设置权限,也就是给子目录中的所有文件设定权限

用户身份: u(所有者) g(所属组) o(其他用户) a(代表全部身份)

赋予方式: +(添加权限) -(去除权限) =(设置权限)

权限: r(读取权限) w(写权限) x(执行权限)

例:给用户添加执行权限

例:给组添加写入权限

例:给其他用户添加写入权限

如图所示 权限添加完成

---------------------------------修改读写执行权限(数字权限)-------------------------------------------------

基本权限数字

  4  代表r权限()

  2  代表w权限()

  1  代表x权限(执行)

  0  无任何权限

         所有者权限 所属组权限 其他用户权限

         644:所有者(读写) 所属组() 其他()

        755:所有者(读写执行) 所属组(读执行) 其他(读执行)

        777:所有者(读写执行) 所属组(读写执行) 其他(读写执行)

例:给文件file1.txt赋予644权限

如图所示  赋予权限成功 

rw= 4+2

r=4

r=4

----------------------------------------------------修改所有者---------------------------------------------------------------

        语法 chown [选项] 所有者:所属组 文件或目录

                  -R 递归设置权限

:将my文件夹的所有者改成root

        chown –R root:root my

如图所示  已经将所有者改为root

---------------------------------------------------------修改所属组---------------------------------------------------------chgrp 所属组 文件或目录

语法:chgrp 【选项】 文件/目录

-h:‌如果目标是一个链接文件,‌则更改链接文件的所属组,‌而不是链接的文件本身。‌

-R:‌递归更改目录及其下所有子目录和文件的组所有权。‌

例:更改test目录下的所有文件的组为mqy

chgrp -R mqy test

-------------------------------------------------umask-----------------------------------------------------------------------

获取umask值

umask目录的默认权限

\

umask文件的默认权限

为了验证以上所以测试是否和默认权限一致

例:创建一个free目录和一个ABC.txt文件 查看是否与默认值一致

mkdir free        --创建free空目录

ll                        --查看权限

touch ABC.txt                --创建ABC.txt文件

ll                                --查看权限

证明文件和目录权限 和如图一致

----------------------------------------------------------ACL-----------------------------------------------------------------

ACL权限是为了解决所有者,所属组,其他人三个权限用户身份分配不足的问题 普通权限只能指定u/g/o的权限类型,可以借助于acl特别指定某位用户的权限

ACL access control list 限制用户对文件的访问 访问 控制 列表

ACL是UGO的补充,或者说是加强版

如何开启分区ACL权限

vim /etc/fstab

在xfs后面的 defaults加,acl  1 1

注:Linux现在一般所有分区全部默认开启ACL,不用修改配置

--------------------------------------------------查询acl权限----------------------------------------------------------- getfacl 文件名 查看ACL命令 查看ACL权限

-----------------------------------------------修改acl权限---------------------------------------------------------

setfacl [选项] 文件名

-m:设定ACL权限

 -x:删除指定的ACL权限

-b:删除所有的ACL权限

-d:设定默认的ACL权限

-k:删除默认ACL权限

-R:递归设定ACL权限

例:给其他用户名字为mqy的添加free目录的所有权限

setfacl -m u:mqy:rwx free

例:给其他用户名字为mqy的删除free目录的所有权限

setfacl -x u:mqy free

-----------------------------------ACL权限最大有效权限与删除----------------------------------------------------

getfacl 目录

获取目录的权限

更改free目录权限为rx

----------------------------------------------------权限的删除--------------------------------------------------------------

setfacl -x u:用户名 文件名 删除指定用户的ACL权限

setfacl -x g:组名 文件名 删除指定用户组的ACL权限

先获取free目录的权限

例:删除用户为mqy在free目录的权限


发现用户mqy没有了

----setfacl -b 文件名 会删除文件的所有ACL权限

删除所有权限之后查询 发现什么都没有了

------------------------------------------ACL权限默认与递归--------------------------------------------------------

递归ACL权限

递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限

命令: setfacl -m u:用户名:权限 -R 目录名 -R必须在这个位置

默认ACL权限

默认ACL权限的作用是如果给父目录设定默认ACL权限,那么父目录中所有新建的子文件和子目录都会继 承父目录的ACL权限

命令: setfacl -m d:u:用户名:权限 目录名 可以在权限后面加-R来进行递归

二、文件特殊权限

SetUID

针对文件所设置的一个特别权限 功能:使调用文件/程序的用户,临时具备属主的能力 只有可以执行的二进制程序才能设定SUID权限,普通文件或者目录没有意义

注:文件权限带有s才是有SUID权限的文件

所以 如何设置SUID权限呢?

设置SetUID

chmod 4755 文件名 4代表SUID权限

chmod u+s 文件名

4755 4代表SetUID,跟所有者有关

2755 2代表SetGID,跟所属组有关 1755

1代表SetBIT权限,跟其他人有关

----------------------------------------------------取消SetUID-------------------------------------------------------

chmod 755 文件名

chmod u-s 文件名

如果用户对文件没有执行权限,就会报错,此时给他加特殊权限,就会显示大S

权限取消了

SetGID

SetGID针对文件

只有可以执行的二进制程序才能设定SGID权限 命令执行者要对该程序拥有x(执行)权限 命令执行在执行程序的时候,组身份升级为该程序文件的所属组SetGID权限同只在该程序执行过程中有 效,也就是说组身份改变只在程序执行过程中有效

设定SetGID的方法

chmod 2755 文件名 2代表SGID权限

chmod g+s 文件名

取消SetUID的方法

chmod 755 文件名

chmod g-s 文件名

Sticky BIT

粘着位目前只对目录有效

设定粘着位的方法

chmod 1755 目录名

1代表粘着位

chmod o+t 目录名

取消粘着位的方法 chmod 755 目录名

chmod o-t 目录名

带有t就是代表粘着位

文件系统属性chattr权限

修改:

chattr [+ - =] [选项] 文件名或者目录名

+:增加权限 -:删除权限 =:等于某权限

i:如果对文件设置i属性,那么不允许对文件进行删除,改名,也不能添加和修改数据;

如果对目录设置 i属性,那么只能修改目录下文件的数据,但是不允许建立和删除文件

a:如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除或者修改数据;

如果对目录设置 a属性,那么只允许在目录中建立和修改文件,但是不允许删除文件

例:给文件file1设置i属性

尝试删除

因为设置file1的i权限 所以不能删除

查 看 :lsattr

语法 lsattr [选项] 文件名

-a:显示所有文件和目录

-d:若目标是目录,仅列出目录本身的属性,而不是子文件的

Linux 权限管理Linux 操作系统中非常重要的一部分,它控制着用户对文件和目录的访问权限。在 Linux 中,每个文件和目录都有三种基本权限:读取(r)、写入(w)和执行(x)。这些权限可以分别应用于文件所有者、文件所属组和其他用户,以控制不同用户对文件和目录的访问和使用。 文件权限的表示方法 Linux 中,文件权限是用一串数字来表示的,每个数字代表一种权限。其中,第一位表示文件所有者的权限,第二位表示文件所属组的权限,第三位表示其他用户的权限。每个数字的含义如下: - 0:没有权限 - 1:执行权限 - 2:写入权限 - 3:写入和执行权限 - 4:读取权限 - 5:读取和执行权限 - 6:读取和写入权限 - 7:读取、写入和执行权限 例如,文件权限为“rw-r--r--”,表示文件所有者具有读取和写入权限,文件所属组和其他用户只有读取权限。 文件权限的修改方法 在 Linux 中,可以使用 chmod 命令来修改文件权限。chmod 命令的基本语法如下: ``` chmod [选项] 模式 文件名 ``` 其中,选项包括: - -c:只在文件权限确实发生了改变的情况下,输出修改信息。 - -f:不显示错误信息。 - -v:显示每个文件的修改信息。 模式是一种用数字表示的文件权限,可以使用以下方法进行计算: - r=4,w=2,x=1 - 所有者权限的值 = rwx 的数字值 - 组权限的值 = rwx 的数字值 - 其他用户权限的值 = rwx 的数字值 例如,要将文件的所有者设置为可读写,组用户设置为只读,其他用户设置为只执行,可以使用以下命令: ``` chmod 754 filename ``` 其中,7 表示所有者具有读、写和执行权限;5 表示组用户具有读和执行权限;4 表示其他用户具有只读权限。 除了 chmod 命令,Linux 还提供了一些其他工具来管理权限,如 chown 和 chgrp 命令用于更改文件的所有者和所属组,setuid 和 setgid 位可以设置进程的权限等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值