Linux目录和文件权限管理(下)
SUID权限
1:SUID权限的作用
SUID是Set User ID的简称,它是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有所属组的权限
2:SUID权限设置格式
SUID权限设置可以用文字表示法和数字表示法
文字表示法 | 数字表示法 | 命令功能 |
chmod u+s 文件名 | chmod 4xxx 文件名 | 添加SUID权限 |
chmod u-s 文件名 | chmod 0xxx 文件名 | 取消SUID权限 |
命令案例
在Linux中,所有账号的密码记录在/etc/shadow这个文件中,并且只有root可以读该文件。增加普通用户admin查看/etc/shadow文件内容
在Linux系统中查看文件内容可以使用cat命令,cat命令所在路径是/bin/cat
代码具体解释如下:
执行命令“ll /bin/cat”查看文件属性
执行命令“chmod 4755 /bin/cat”,可以给cat命令设置SUID权限
执行命令“ll /bin/cat”,可以看到文件属性中所有者权限x变为s,表示SUID权限生效
执行命令“su admin”,切换到普通用户admin
执行命令“cat /etc/shadow”,可以看到不同用户admin也可以读取/etc/shadow文件中的内容
SGID权限
1:SGID权限的作用
SGID是Set Group ID的简称,它是让执行者临时拥有所属组的权限,即在某个目录下创建的文件自动继承该目录的用户组(只可以对目录进行设置)
2:SGID权限设置格式
SGID权限设置可以用文字表示法或者数字表示法
文字表示法 | 数字表示法 | 命令功能 |
chmod g+s文件名 | chmod 2xxx 文件名 | 添加SGID权限 |
chmod g-s 文件名 | chmod 0xxx 文件名 | 取消SGID权限 |
命令案例
使用admin用户登录,创建/mnt/test目录,要求该目录下创建的文件都具有admin组的属性
SBIT权限
1:SBIT权限的作用
SBIT是StickBIT的简称,主要用来防止其他用户修改或删除非本人的目录和文件
2:SBIT权限设置格式
SBIT权限设置可以用文字表示法和数字表示法
文字表示法 | 数字表示法 | 命令功能 |
chmod o+t文件名 | chmod 1xxx 文件名 | 添加SBIT权限 |
chmod o-t 文件名 | chmod 0xxx 文件名 | 取消SBIT权限 |
ACL权限
ACL的全称是Access Control List(访问控制列表),一个针对文件/目录的访问控制列表,为文件系统提供一个额外的,更灵活的权限管理机制。ACL允许给任何的用户或用户组设置任何文件/目录的访问权限,只有root用户可以定义ACL
例如,默认情况下一个文件需要设置3个权限组,owner、group和other,而使用ACL,可以增加权限给其他用户或组别,可以允许指定用户A、B、C拥有写权限而不再是让整个组拥有写权限
查看ACL权限(getfacl)
1:命令作用
getfacl命令主要用来查看ACL权限
2:命令格式
getfacl命令的格式为“getfacl [选项] 文件名”
3:命令选项
getfacl命令选项及含义
-a:仅显示文件访问控制列表
-c:不显示注释表头
-d:仅显示默认的访问控制列表
-e:显示所有的有效权限
-n:显示数字的用户/组标识
-t:使用制表符分隔的输出格式
命令案例
简要查看/etc目录的ACL权限
查看/etc目录的ACL权限,不显示注释表头
查看/etc目录的有效ACL权限
使用制表符分隔格式查看/etc目录的ACL权限
设置ACL权限(setfacl)
1:命令作用
setfacl命令主要用来设置ACL权限
2:命令格式
setfacl命令的格式为“setfacl [选项] 文件名”
3:命令选项
setfacl命令选项及含义
-b:删除所有扩展访问控制列表条目
-d:应用到默认访问控制列表的操作
-k:移除默认访问控制列表
-m:更改文件的访问控制列表
-R:递归操作子目录
-x:根据文件中访问控制列表移出条目
命令案例
新增用户user2,设置user2用户对/etc目录只有可读权限
新增用户user3,设置user3用户对/etc目录及子目录具有读写权限
新增group1用户组,设置group1组中所有用户对/etc目录及子目录具有任何权限
备注:如有错误,请谅解!
此文章为本人学习笔记,仅供参考!如有重复!!!请联系本人!