Linux系统作为多用户多任务的操作系统,用户和权限管理是日常运维和使用的核心内容,合理的权限配置既能保障系统安全,也能避免操作过程中出现权限不足的问题。

Linux用户与用户组基础概念
Linux系统中的用户分为三类,不同类别的用户拥有的权限范围差异很大:
- 超级用户(root):系统最高权限拥有者,可执行所有操作,UID为0
- 系统用户:用于运行系统服务的专用用户,UID范围通常为1-999,一般不允许登录系统
- 普通用户:由root或有权限的管理员创建,UID范围通常为1000以上,权限受限制
用户组是多个用户的集合,相同用户组的成员可以共享组权限,每个用户至少属于一个主用户组,也可以加入多个附加用户组。
用户管理常用操作
查看用户信息
可以通过id命令查看当前用户或指定用户的UID、GID和所属组信息:
# 查看当前用户信息 id # 查看指定用户test的信息 id test
用户信息存储在/etc/passwd文件中,每行代表一个用户,格式为:用户名:密码占位符:UID:GID:用户描述:家目录:登录shell。
创建新用户
使用useradd命令创建新用户,常用参数如下:
| 参数 | 说明 |
|---|---|
| -m | 创建用户时同时创建家目录 |
| -g | 指定用户的主用户组 |
| -G | 指定用户的附加用户组 |
| -s | 指定用户的登录shell |
# 创建名为test的普通用户,同时创建家目录,指定登录shell为bash useradd -m -s /bin/bash test # 为用户设置密码 passwd test
修改和删除用户
修改用户属性使用usermod命令,删除用户使用userdel命令:
# 将test用户加入wheel附加组 usermod -aG wheel test # 删除test用户,同时删除其家目录 userdel -r test
用户组管理常用操作
用户组的配置文件是/etc/group,每行格式为:组名:密码占位符:GID:组内用户列表。
# 创建名为dev的用户组 groupadd dev # 删除dev用户组 groupdel dev # 将test用户加入dev组 gpasswd -a test dev # 将test用户从dev组移除 gpasswd -d test dev
文件权限管理
权限表示方式
使用ls -l命令可以查看文件的权限信息,权限字段由10个字符组成:
- 第1位:文件类型,-代表普通文件,d代表目录,l代表软链接
- 第2-4位:文件所有者的权限,r代表读,w代表写,x代表执行
- 第5-7位:文件所属组的权限
- 第8-10位:其他用户的权限
权限也可以用数字表示,r对应4,w对应2,x对应1,比如rwxr-xr-x对应的数字是755。
修改文件权限
使用chmod命令修改文件权限,支持字符模式和数字模式:
# 给test.txt文件的所有者增加执行权限 chmod u+x test.txt # 设置test目录的权限为755,即所有者rwx,组和其他用户r-x chmod 755 test # 递归修改test目录下所有文件的权限为644 chmod -R 644 test
修改文件所属用户和组
使用chown命令修改文件的所有者和所属组:
# 将test.txt的所有者改为test用户 chown test test.txt # 将test目录的所有者改为test,所属组改为dev chown test:dev test # 递归修改test目录下所有文件的所有者和所属组 chown -R test:dev test
特殊权限与sudo配置
特殊权限说明
Linux还有三种特殊权限,分别是SUID、SGID、SBIT:
- SUID:仅对可执行文件有效,执行该文件的用户会临时获得文件所有者的权限
- SGID:对目录有效时,目录内新建的文件会继承目录的所属组
- SBIT:仅对目录有效,目录内的文件仅所有者可以删除
# 给可执行文件设置SUID权限 chmod u+s /usr/bin/passwd # 给目录设置SGID权限 chmod g+s /data/share # 给目录设置SBIT权限 chmod o+t /tmp
sudo提权配置
普通用户可以通过sudo命令临时获取root权限,配置文件为/etc/sudoers,建议使用visudo命令编辑该文件,避免语法错误导致sudo不可用。
# 允许wheel组的所有用户执行所有命令,无需密码 %wheel ALL=(ALL) NOPASSWD: ALL # 允许test用户执行/usr/bin/systemctl命令重启nginx服务 test ALL=(root) /usr/bin/systemctl restart nginx
常见问题排查
如果遇到权限不足的问题,可以按照以下步骤排查:
- 使用
ls -l查看文件或目录的权限和所属用户、组 - 使用
id 用户名查看当前用户所属的组,确认是否有权限访问 - 如果是执行命令权限不足,确认是否需要使用sudo提权
- 检查是否有特殊权限配置影响访问逻辑
注意:不要随意给普通文件设置777权限,这会允许所有用户读写执行该文件,存在极大的安全风险,生产环境中应遵循最小权限原则配置权限。
Linux_user_managementLinux_permission_managementsudochmodchown修改时间:2026-06-14 04:33:53