权限管理
权限管理
用户类型
- 超级用户:root,id为0,拥有最高权限
- 系统用户:id为1-999,用于运行系统服务,不允许登录
- 普通用户:id为1000+,仅对家目录拥有完整权限
用户存储
-
/etc/passwd:存储用户基本信息,每个字段含义如下: 用户名:密码占位符:UID:GID:注释:家目录:登录shell -
/etc/shadow:存储用户的密码(加密后)及失效日期,仅 root 可读,每个字段含义如下: 用户名:加密密码:最后修改时间:最小间隔天数:最大有效天数:警告天数:宽限天数:失效时间:保留字段
管理用户
创建与修改用户
-u:指定 UID。-g:指定初始主组。-d:指定用户的主目录-G:指定附加组(用户可以属于多个组)。-s:指定登录后的 Shell(如/bin/bash或禁止登录的/sbin/nologin)。-comment:指定用户的注释信息。
-L:锁定用户的账号,使其无法登录
- -s:查看用户的密码状态
- -d:清空用户的密码
- -e:强制过期,下次登录时必须修改密码
-d:修改用户的主目录-L:锁定用户的账号,使其无法登录-s:修改登录后的 Shell
删除用户
只有root用户或拥有sudo权限的用户
-r:递归删除,同时删除用户的家目录和邮件池。
管理组
组存储
/etc/group:存储用户组的信息,每个字段含义如下: 组名:组密码占位符:GID:成员列表(通常用逗号分割)/etc/gshadow:存储用户组的加密密码信息,每个字段含义如下: 组名:加密密码:组管理员:组成员列表
创建和管理组
-g:指定组的gid。r:创建一个系统账号组,id范围在$100-999$之间。
高级权限
Set位权限
分为SUID和SGID。
SUID
获得文件的属主权限。
当执行文件的权限被设置为SUID时,任何用户在执行该文件时都会自动获得该文件的属主权限。
通过以下方法设置SUID权限:
设置后,该文件的属主权限第三位会变成s。
SGID
获得文件的属组权限。
当执行文件的权限被设置为SGID时,任何用户在执行该文件时都会自动获得该文件的属组权限。
通过以下方法设置SGID权限:
设置后,该文件的属组权限第三位会变成s。
粘滞位权限
使用户在该目录下只能修改和删除自己创建的文件,而不能修改和删除其他用户创建的文件。
只有root用户能够修改、删除该目录下的所有文件。
通过以下方法设置粘滞位权限:
设置后,该目录的其他用户权限第三位会变成t。
ACL权限
用于给单独的用户设置权限,而不影响其属组。
设置权限
通过以下方法设置ACL权限:
-m:设置ACL参数。-x:删除ACL参数。-b:删除所有ACL参数。-k:删除默认的ACL参数。-R:递归地设置ACL参数。d:设置默认的ACL参数,只对目录有效。
ACL参数的格式如下:
其中,u代表设置指定用户权限,g代表设置指定用户组权限。权限列表为rwx或它的部分。
管理权限
通过以下方法设置ACL权限:
-a:仅显示访问控制列表-d:仅显示默认控制列表-c:忽略页眉,不显示文件名、所有者等前三行注释-R:递归显示目录下所有子文件和子目录的权限