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文章来源:https://www.toymoban.com/news/detail-824459.html
总结:
默认权限 umask 控制创建出来的文件去除什么权限
特殊权限
suid 二进制可执行文件
sgid 二进制可执行文件和目录
sticky 只有root用户和拥有人可以删除
acl权限 对拥有人,拥有组,其他人的细分,更细致的访问控制
sudo 给用户赋权,设置一个用户以另一个用户的身份运行命令文章来源地址https://www.toymoban.com/news/detail-824459.html
到了这里,关于Linux中特殊权限和提权详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!