权限各种命令
创始人
2024-11-12 19:07:26
chmod u+x hello.sh chmod 755 hello.sh # 赋予执行权限 chmod g+w,o+w hello.sh chmod g-w,o-w hello.sh chmod u=rwx,g=rw hello.sh chmod a=rwx hello.mp4 

权限的数字表示

权限类型数字
r4
w2
x1
-rw-r--r--. # 默认创建的文件 drwxr-xr-x. # 默认创建的文件夹 drwxr-xr-x+ # acl权限目录 
chown 用户名 文件名 # 修改文件所有者 chgrp 组名 文件名 # 修改文件所属组 

e.g.

chown songxiaobao:actors /xiaopin # 修改文件所有者 
umask # 0022 # 第一位0:文件特殊权限 # 022:文件默认权限 umask 0002 # 临时修改 vim /etc/profile # 永久修改 
dumpe2fs -h /dev/sda5 # dumpe2fs命令是查询指定分区详细文件系统信息的命令 

选项

选项备注
-h仅显示超级块中信息,而不显示磁盘块组的详细信息

临时开启分区 ACL 权限

dumpe2fs -h /dev/sda5 | grep acl mount -o remount,acl / 重新挂载根分区,并挂载加入acl权限 

永久开启分区 ACL 权限

vim /etc/fstab UUID=cdda7dc1-4d8f-40b1-8f25-59cb4413a9de /boot                   ext4    defaults,acl        1 2 # 加入acl mount -o remount / # 重新挂载文件系统或重启动系统,使修改生效 
getfacl 文件名 # 查看acl权限 
setfacl 选项 文件名 # 设定acl权限 

选项

选项备注
-m设定 ACL 权限
-x删除指定的 ACL 权限
-b删除所有的 ACL 权限
-d设定默认 ACL 权限
-k删除默认 ACL 权限
-R递归设定 ACL 权限,可能导致权限溢出
setfacl -m u:用户名:权限 文件名 # 给用户赋予ACL权限 setfacl -m g:用户组名:权限 文件名 # 给用户组赋予ACL权限 setfacl -x u:用户名 文件名 # 删除指定用户的ACL权限 setfacl -x g:用户组名 文件名 # 删除指定用户组的ACL权限 setfacl -b 文件名 # 删除所有的 ACL 权限 setfacl -m d:u:用户名:权限 文件夹名 # 默认 ACL 权限 setfacl -m u:用户名:权限 -R 文件夹名 # 递归 ACL 权限 

e.g.

setfacl -m u:songxiaobao:rx /xiaoping # 给用户songxiaobaofuy赋予r-x权限 setfacl -m g:actors:rwx /xiaoping # 给用户组actors赋予rwx权限 
visudo # 实际上修改的是/etc/sudoers,小心使用 root ALL=(ALL)  ALL # 用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径) %whell ALL=(ALL)  ALL # %组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径) man 5 sudoers 

e.g.

# 超级用户 visudo # 最后一行插入 user1 ALL=(ALL)  /sbin/shutdown -r now # user1 sudo /sbin/shutdown -r now 
su - user1 sudo -l # 查看可用的sudo命令 sudo /sbin/shutdown -r now # 普通用户执行sudo赋予的命令 
visudo user1 ALL=/usr/sbin/useradd # 授予用户添加用户的权限,(ALL)可以省略 user1 ALL=/usr/bin/passwd [A_Za-z]*, !/usr/bin/passwd "", !/usr/bin/passwd root # 授予用户设定密码的权限,(ALL)可以省略 
文件特殊权限
SetUID
SetGID
Sticky BIT

SUID

chmod 4755 文件名 chmod u+s 文件名 # 设置SUID权限 # 4代表SUID,慎用 # s=x+S chmod 0755 文件名 chmod u-s 文件名 # 取消SUID权限 
  1. 创建 suid.log 文件
find / -perm -4000 -o -perm -2000 > suid.log # 在根目录下查找包含SUID和SGID权限的文件,并记录在suid.log文件内 
  1. 创建 suid_check.sh 文件
#!/bin/bash find / -perm -4000 -o -perm -2000 > /tmp/setsuid.check for i in $(cat /tmp/setsuid.check) do         grep $i  /root/suid.log > /dev/null         if [ "$?" != "0" ]                 then                         echo "$i is a new suidfile!" >> /root/suid_log_$(date +%F)                 fi done rm -rf /tmp/setsuid.check 
  1. 赋予 suid_check.sh 文件执行权限
chmod 755 suid_check.sh 
  1. 测试
touch abc chmod u+s abc ./suid_check.sh cat suid_log_2018-06-10 
ll /usr/bin/locate ll /var/lib/mlocate/mlocate.db 

SGID

chmod 2755 文件名 chmod g+s 文件名 # 设置SUID权限 # 2代表SGID,慎用 # s=x+S chmod 0755 文件名 chmod g-s 文件名 # 取消SUID权限 

SBIT

chmod 1755 文件名 chmod o+t 文件名 # 设置粘着位 # 1代表SBIT,慎用 chmod 0777 文件名 chmod o-t 文件名 # 取消粘着位 

chattr

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

选项

选项备注
+增加权限
-删除权限
=等于某权限
i修改的权限
a追加的权限

e.g.

chattr +i abc chattr -i abc chattr +a abc chattr -a abc 
lsattr 文件或目录名 

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...