暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux权限管理详细命令举例

原创 土豆泥 2022-09-29
479

1.ACL权限
1.1ACL权限简介与开启
所有者、所属组和其他人的权限不够用,专门为用户设定独立的权限

#查看分区ACL权限是否开启

dumpe2fs -h /dev/sda3

如下图:蓝框就表示该分区具有acl权限



#临时开启分区ACL权限

mount -o remount,acl / #重新挂载根分区,并加入acl权限#

#永久开启ACL权限

修改/etc/fsatb 在对应的分区options那一列加上【,acl】

注意:ACL权限一般Linux都会默认开启,即不用设定

1.2 查看与设定ACL权限
#设定acl权限

setfacl 选项 文件名

-m 设定ACL权限

-x 删除指定的ACL权限

-b 删除所有的ACL权限

-d 设定默认的ACL权限

-k 删除默认的ACL权限

-R 递归设定ACL权限

例如:setfacl -m u:test:rx /project #给用户st单独赋予rx权限

setfacl -m g:group2:rx /project #给组group2分配acl权限

# 查看acl权限

getfacle 文件名

示例如下



如图,对project目录设定acl权限后,权限一列后多了个+号,且getfacl查询,发现对test用户有单独的r和x权限,如红框所示。

1.3最大有限权限与删除acl权限
mask权限是用来指定最大有效权限的。如果给用户赋予了acl权限,需要与mask权限相“与”才能得到用户的真正权限。mask权限可通过getfacl查询,如上图中的mask一行。目的是防止给用户权限过高。

#设定mask权限为rx

setfacl -m m:rx 文件名

#删除acl权限

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

setfacl -b 文件名 ##删除文件所有的acl权限

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

# 设定递归文件夹的acl权限

setfacl -m u:用户名:权限 -R 文件夹 #加选项-R

默认是给文件夹设定默认的acl权限后,新建的子文件都会继承默认的acl权限

#设定默认的acl权限

setfacl -m d:u:用户名:权限 文件夹

2.文件特殊权限
2.1 SetUID
SetUID功能:命令执行者在执行二进制程序时可以获取该程序的所有者身份,SetUID权限只在程序执行过程中有效

例如:passwd命令就拥有SetUID权限,普通用户在执行passwd命令时就当root用户执行passwd



如上图,所有者的可执行权限变为s,且文件标红色。

#设定SetUID方法

chmod 4755 可执行程序 #4代表SUID,第一位表示特殊权限,后面为所有者、所属组、其他人权限

chmod u+s 可执行程序

# 取消SUID权限

chmod 755 可执行程序

chmod u-s 可执行程序

如下图,对abc文件设定和取消SUID权限





注意:(1)一定要是可执行文件或者脚本;(2)命令执行者要对其有可执行权限,否则SUID权限增加不成功。

2.2 SetGID
SetGID功能:

针对文件:

命令执行者在执行程序时,组身份升级为该程序文件的属组,SetGID权限只在程序执行过程中有效,即组身份改变只在程序执行过程中有效。

针对目录:

普通用户必须对此目录有r和x权限,才能进入此目录;

普通用户在此目录中的有效组会变成此目录的属组;

若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组。

#设定SetGID方法

chmod 2755 可执行程序或目录 #2代表SGID

chmod g+s 可执行程序或目录

# 取消SUID权限

chmod 755 可执行程序或目录

chmod g-s 可执行程序或目录

例如:



在/tmp/test目录拥有SGID权限后, 用sc用户在/tmp/test目录中创建新文件,所属组本该是sc,但是由于SGID权限,创建后的新文件所属组是root。

2.3 Sticky BIT
粘着位作用:

要求:仅对目录有效,且普通用户对此目录有w和x权限,即普通用户可以在此目录拥有写入权限;

如果没有粘着位,普通用户拥有w权限,可以删除此目录下的所有文件,一旦有粘着位,只有root可以删除所有文件,普通用户只能删除自己建立的文件,但是不能删除其他用户建立的文件。

例如:/tmp文件夹



即在tmp目录下,只允许用户删除自己建立的文件。

#设置粘着位权限

chmod 1755 目录名 #1代表粘着位权限

chmod o+t 目录名

#取消SUID权限

chmod 755 目录名

chmod o-t 目录名

3. 文件系统属性chattr权限
#设置文件系统属性

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

i:如果对文件设置i属性,不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置i属性,那只能修改目录下文件的数据,但不允许建立和删除文件

a:如果对文件设置a属性,那只能在文件追加数据,但不能删除也不能修改数据;如果对目录设置a属性,那只能在目录中建立和修改文件,但是不允许删除

注意:该命令对root用户也有效

#查看文件系统属性

lsattr 选项 文件名

-a 显示所有文件和目录

-d 若是目录,仅列出目录本身的属性

例如:对abc文件设置i属性,设置完后不可写入数据,也不可能删除



对test1文件夹设置i属性,设置后不可在test1文件夹内新建和删除文件,只能修改原有文件数据



4.系统命令sudo权限
#sudo使用

visudo

#实际修改的是/etc/sudoers文件 man 5 sudoers 可查询souders文档

root ALL=(ALL) ALL

用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)

例如:授权test用户可以重启

则在root ALL=(ALL) ALL下增加

test ALL=/sbin/shutdown -r now

#普通用户执行sudo赋予的命令

sudo -l #查看可用的sudo命令

sudo /sbin/shutdown -r now #普通用户执行sudo赋予的命令

注意:命令格式要严格按照sudo + visudo中增加的/sbin/shutdown -r now命令格式,否则无法执行

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论