Linux中特殊权限和提权详解

发布时间:2024年01月11日

sgid : ?针对二进制的可执行文件,如果该文件有sgid的权限,那么当其他任何人来执行该文件时,则临时拥有文件拥有组的权限
针对目录: 如果一个目录有sgid权限,则在该目录下创建的的子目录可以继承该目录的权限,但是还是得根据umask值来继承,其他用户在该目录下创建子目录的拥有人是该用户,文件不会继承父目录的权限,只有目录才可以
chmod g+s 或者 chmod 2775

sticky:粘滞位
给文件设置无意义,针对目录,子目录不会父继承t的权限,若父目录有t权限,其他人都不能删除该目录下的文件和目录,只有root用户和父目录的拥有人才能进行删除操作(拥有人能删除父目录下的文件和目录)
chmod o+t 或者 chmod ?1744?

acl(access control list : 访问控制列表)
ll -d 3/
drwxrwxr-t+ 4 wang cloud 24 Apr 23 02:03 3/ ?: 显示部分acl权限信息
其中cloud组的rwx权限显示的是mask的信息

getfacl 3/
# file: 3/ ? ? ? ?: ? ?目录名字
# owner: wang ? ? ?: 拥有人
# group: cloud ? ? ?: 拥有组
# flags: --t ? ? ? ? ?: 特殊权限
user::rwx ? ? ? ? ? ?: ?用户的权限
user:user1:rw- ? ?: user1用户的权限
group::r-x ? ? ? ? ?: ?组的权限
mask::rwx ? ? ? ? ?: 掩码(最大的权限),若上面的权限超过mask,则会有#effective(有效的权限):r--
other::r-x ? ? ? ? ? : 其他人的权限
setfacl -m u::rwx ?4/ ?: ?设置user的acl
setfacl -m u:user1:rwx 4/ ?: ?设置user1的acl
setfacl -m g::rwx ?4/ : 设置group的acl
setfacl -m g:it:rwx 4/ ?: 设置it组的acl
setfacl -m o::rwx 4/ ?: ?设置其他人的acl
setfacl -m d:u:user1:rwx 4/ ?: 设置默认权限,该权限可以继承下去,创建子目录会继承父目录的acl权限

设置mask值
?? ?mask最大权限:会影响到用户和组的acl,以及组的权限,不会影响拥有人和其他人的权限,每次变更acl权限,mask值会重新计算
?? ?setfacl -m m::rw- /data ?设置mask值
setfacl -n -x ?g:it /data/ ? ?加-n保持mask值不变

setfacl -b 3/ ?: ?清空目录的所有acl权限
setfacl -x u:user1 : 删除用户user1的acl权限
setfacl -x g:it ? ? ?: ?删除组it的acl权限
setfacl -x m:: ? ? : 删除mask的权限
setfacl -x d:u:use1 ?4/ ?: ?删除user1的默认权限
setfacl -k 3/ ?: ?删除所有的默认权限

sudo提权
语法规则:
?? ? user ? MACHINE = ? ? (RunAs) ? ? ? ? NOPASSWD: COMMANDS(例如:/usr/bin/mkdir)
?? ?用户名 被管理主机=(可使用的身份) ?授权命令(绝对路径)
root ? ?ALL=(ALL) ? ? ? ALL
wang ? ?ALL=(ALL) ? ? ? ALL
natasha ALL=(wang) ? ? ?ALL ? : ? natasha可以wang身份创建文件,其拥有人和拥有组都是wang ? ? ?sudo ?-u ?wang ?mkdir /tmp/file1
root指定创建用户的拥有人和拥有组(注意: 该目录下必须有权限): ?sudo -u ?wang ?touch /tmp/file1
? ?
sudo语法:sudo [选项] 命令
常用选项:
-V 显示版本编号
-l 显示出自己(执行 sudo 的使用者)的权限
-k 将会强迫使用者在下一次执行 sudo 时问密码(默认5min中以内再次执行sudo不需要密码)
-b 将要执行的指令放在后台执行
-u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)

sudo是linux下常用的允许普通用户使用超级用户权限的工具,可以减少root用户的登陆和管理时间,同样也提高了安全性。
sudo的配置文件是/etc/sudoers和/etc/sudoers.d/*,/etc/sudoers编辑配置文件最好用visudo,保存时会检测语法,而vim直接编辑不会检测语法。

sudoers文件支持使用别名对同类对象进行分组:组名必须使用全大写字母,使用逗号将同类对象命令隔开。
Host_Alias:主机别名
User_Alias:用户别名
Runas_Alias:在哪些主机以谁的身份运行的别名
Cmnd_Alias:命令别名

举例:
User_Alias USER = user1, user2
Cmnd_Alias COMMAND = /usr/sbin/useradd
USER ?ALL=(root) ?NOPASSWD: COMMAND


总结:
默认权限 umask ?控制创建出来的文件去除什么权限
特殊权限
suid ? 二进制可执行文件
sgid ? 二进制可执行文件和目录
sticky ?只有root用户和拥有人可以删除
acl权限 ?对拥有人,拥有组,其他人的细分,更细致的访问控制
sudo ? ?给用户赋权,设置一个用户以另一个用户的身份运行命令

文章来源:https://blog.csdn.net/weixin_46113061/article/details/135515646
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。