6、权限管理
00 分钟
2024-6-25
Created
Jun 19, 2024 01:30 PM
Tags
权限管理
一、文件、目录的权限
·文件权限 # R权限更为重要!
r 读,查看文件内容
w 写,修改文件内容
x 执行,运行文件中代码(命令)
rwx 可以查看文件、可以修改文件、可以执行文件中代码
rw- 可以查看文件、可以修改文件、不可以执行文件中代码
r-x 可以查看文件、不可以修改文件、可以执行文件中代码
r-- 可以查看文件、不可以修改、不可以执行
  • -- 不可以查看文件、不可以修改、不可以执行
·目录权限 # X权限更为重要!
r 读,查看目录中子文件子目录
w 写,在目录中创建子文件子目录,删除目录下子文件子目录
x 切换到目录中
rwx 可以查看目录、可以在目录中创建、删除、可以cd切换到目录
r-x 可以查看目录、不可以在目录中创建、删除、可以cd切换到目录
  • wx 不能查看目录下子文件子目录,可以在目录中创建子文件子目录,可以cd切换到目录
rw- 查看会有错误提示,创建失败,不能切换到目录中
r 查看会有错误提示,不能创建,不能切换到目录中。
w 不能查看、不能创建、不能切换。
x 不能查看、不能创建、可以切换。
————————————注——————————————
·文件和目录中R、W、X权限对比
字符 数字 目录 文件
R 4 查看目录下的文件与目录名称 查看文件内容
W 2 在目录下增,删,改文件与目录名称 修改文件内容
X 1 可以用cd命令进入该目录 可执行,一般为程序或脚本
———————————————————————————
二、修改文件、目录权限相关命令
· 修改文件、目录的权限
chmod命令
作用:改变文件或目录的权限
格式:chmod [-选项] [权限] [文件或目录]
选项:-R 递归将权限应用于所有的子目录与子文件
# u代表所有者,g代表所属组,o代表其他用户,a代表所有人。
· 修改文件、目录的归属
chown命令
作用:修改文件或目录的所有者与所属组
格式:chown [-选项] [所有者]:[所属组] [文件或目录]
选项:-R 递归将权限应用于所有的子目录与子文件
三、查看、修改文件和目录的隐藏属性
·lsattr命令
格式:lsattr [-选项] [文件名]
作用:查看文件系统属性
选项:-a 显示所有文件和目录
  • d 若目标是目录,仅列出目录本身属性
·chattr命令 # 超级用户可使用
格式:chattr [+/-/=][选项] [文件或目录]
作用:修改文件的隐藏属性
选项:
i 为文件设置i属性——不能对文件进行删除、改名,不能添加和修改数据;为目录设置i属性——只能修改目录下文件的数据,不能建立和删除文件
a 为文件设置a属性——只能在文件中增加数据,不能删除与修改数据;为目录设置a属性——只能在目录中建立和修改文件,不能删除
e Linux中绝大多数的文件都默认拥有e属性——表示该文件是使用ext文件系统进行存储。此外,不能使用“chattr -e”取消e属性。
四、文件、目录的特殊权限
· SUID权限 [umask:4]
当一个具有执行权限的二进制文件设置SUID权限↓↓
用户执行这个文件时,将以文件所有者的身份执行。
·特点
只有可执行的二进制程序才能设置SUID权限
命令执行者要对该程序拥有执行权限(x)
SUID权限只在该程序执行过程中有效,身份改变同理
① chomd u+s /usr/bin/passwd ② chomd u-s /usr/bin/passwd
· SGID权限 [umask:2]
当一个二进制文件的用户组权限设置SGID权限↓↓
用户执行这个文件时,将获得该文件所属组的权限。
·特点
→ 针对文件
① 只有可执行的二进制程序才能设置SGID权限
② 命令执行者要对该程序拥有执行权限(x)
③ 程序在执行过程中,程序组会改变成程序文件的属组
→ 针对目录
① 普通用户需对此目录拥有r和x权限才能进入此目录
② 普通用户在此目录中的有效组会变成此目录的属组
③ 普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组
① chmod g+s /usr/bin/passwd ② chmod g-s /usr/bin/passwd
· SBIT权限 [umask:1] # 此权限只能用于目录。
当一个目录设置SBIT权限↓↓
只有该文件的创建者,目录的拥有者和root可以删除自己的文件。/tmp/就拥有这个权限。
  1. ① chmod o+s /tmp/
    1. ② chmod o-s /tmp/
      五、ACL权限
      ACL,(access control list)访问控制列表,可以对单一的用户或者组设置对文件或目录的独立rwx权限
      setfacl命令
      作用:设置访问控制列表
      格式:setfacl [-选项] [u:用户名:rwx] [文件或目录]
      选项:
      • m 添加ACL条目
      • x 删除指定用户的ACL权限
      • b 删除所有ACL条目
      • R 实现目录上的ACL权限递归
      • d 设置默认ACL权限(对目录生效)
      举例:setfacl -m u:gao:rwx /fstab
      六、执行命令权限
      执行sudo命令
      (1)当用户执行sudo时,系统会在/etc/sudoers文件中查找该用户是否有执行sudo的权限;
      (2)若用户具有执行sudo的权限后,系统会让用户输入其密码来确认;
      (3)可以切换身份:这个账号可以切换成什么身份来执行后续的命令;
      (4)可执行的命令:这个命令必须写绝对路径。
      配置sudoers文件
      ·%wheel ALL=(ALL) ALL (组身份)
      如果创建的用户在wheel组中,这个用户就是管理员用户,如果想添加管理员用户,也可以创建一个组,在组的前面加上%写入/etc/sudoers文件中,这个组里面的所有用户都是管理员,使用sudo设置这个组里的用户权限是不生效的,因为他们在组里已经默认是管理员了。
上一篇
Linux 基础知识 往期汇总
下一篇
<K8S> vol. 01 - kubernetes 组件