Linux 系统账号和权限管理
本文将全面深入地探讨 Linux 系统中账号和权限管理的各个关键方面,从理论基础到实际操作,涵盖用户账号和组账号的概念、配置文件、管理命令,以及目录和文件的权限与归属设置,助力读者熟练掌握这一重要的系统管理技能。示例:用户 zhangsan 属于技术部基本组 tech,后因工作需要加入邮件管理员组 mailadm,则 tech 为基本组,mailadm 为附加组,组权限适用于组内所有用户。• 基本
前言
在 Linux 操作系统的管理领域中,账号和权限管理是保障系统安全、稳定运行的核心要素。与 Windows 操作系统类似,Linux 通过用户身份识别来控制资源访问,但在表现形式和细节上存在差异。通过合理配置用户账号和组账号,精确设置目录与文件的权限和归属,能够有效控制系统资源的访问,避免非法操作和数据泄露风险,为系统构建起坚实的安全防线。
本文将全面深入地探讨 Linux 系统中账号和权限管理的各个关键方面,从理论基础到实际操作,涵盖用户账号和组账号的概念、配置文件、管理命令,以及目录和文件的权限与归属设置,助力读者熟练掌握这一重要的系统管理技能。
一、用户账号和组账号管理
1.1 用户账号和组账号概述
1.1.1 用户账号类型
Linux 操作系统根据系统管理需求,将用户账号分为三类,各自权限和角色不同:
• 超级用户:默认账号为 root,UID 固定为 0,拥有系统至高无上的权限,类似 Windows 的 Administrator。仅建议在系统管理、维护时使用,日常操作推荐普通用户账号。
• 普通用户:需由 root 或管理员创建,权限受限制,仅在自身宿主目录拥有完整权限,UID 默认范围 500~60000。
• 程序用户:安装系统或应用程序时自动添加,低权限且不允许登录系统,仅用于维持系统或程序正常运行,如 bin、daemon、ftp、mail 等,UID 默认范围 1~499。
1.1.2 组账号类型
组账号是基于特定联系(如共同访问 FTP 服务)的用户集合,便于批量管理权限。每个用户账号至少属于一个基本组(私有组),也可加入多个附加组(公共组):
• 基本组:用户默认所属组,创建用户时若未指定,会自动创建与用户名同名的基本组。
• 附加组:用户额外加入的组,用于获取该组的额外权限。
示例:用户 zhangsan 属于技术部基本组 tech,后因工作需要加入邮件管理员组 mailadm,则 tech 为基本组,mailadm 为附加组,组权限适用于组内所有用户。
1.1.3 UID 和 GID 号
• UID(用户标识号):系统区分用户的核心依据,原则上唯一。root 的 UID 为 0,程序用户 UID 1~499,普通用户 UID 500~60000。
• GID(组标识号):区分组账号的依据。root 组 GID 为 0,程序组 GID 1~499,普通组 GID 500~60000。
1.2 用户账号管理
1.2.1 用户账号配置文件
用户账号的关键信息存储在两个核心配置文件中,均以冒号(:)分隔字段:
1. /etc/passwd 文件:保存用户名、宿主目录、登录 Shell 等公开基本信息,所有用户可读取,root 可修改。格式(7 个字段):用户名:密码占位符 x:UID: 基本组 GID: 用户全名:宿主目录:登录 Shell示例查看命令:
[root@localhost ~]# head -2 /etc/passwd
[root@localhost ~]# tail -1 /etc/passwd
字段说明:
1. 第 1 字段:登录系统的用户名(如 root、teacher)。
2. 第 2 字段:密码占位符 x,实际密码存储在 shadow 文件中。
3. 第 3 字段:用户 UID 号(如 root 的 UID 为 0)。
4. 第 4 字段:基本组 GID 号(如 root 的 GID 为 0)。
5. 第 5 字段:用户说明信息(可空)。
6. 第 6 字段:默认工作目录(如 root 的 /home/root)。
7. 第 7 字段:登录后使用的 Shell(如 /bin/bash,/sbin/nologin 表示禁止登录)。
2. /etc/shadow 文件:又称影子文件,保存密码、账号有效期等敏感信息,仅 root 可读取,不可直接编辑。格式(9 个字段):用户名:加密密码:上次改密时间:密码最短有效天数:密码最长有效天数:过期警告天数:过期后禁用天数:账号失效时间:保留字段示例查看命令:
[root@localhost ~]# head -2 /etc/shadow
[root@localhost ~]# tail -1 /etc/shadow
二、常用命令
| 类别 | 命令 | 主要功能与说明 |
|---|---|---|
| 账号管理 | useradd |
创建新用户(-m创建家目录,-s指定shell,-g指定主组) |
usermod |
修改用户属性(-L锁定账号,-U解锁,-aG追加附加组) |
|
userdel |
删除用户(-r同时删除家目录) |
|
passwd |
设置或修改用户密码(-l锁定密码,-u解锁,-d删除密码) |
|
groupadd |
创建新用户组 | |
groupdel |
删除用户组 | |
| 权限管理 | chmod |
修改文件/目录权限(u/g/o/a+/-r/w/x,或数字模式如755) |
chown |
修改文件/目录所有者和所属组(user:group) |
|
chgrp |
修改文件/目录所属组(功能可被chown替代) |
|
| 特殊权限 | chmod u+s |
设置SUID(仅对可执行文件有效,以文件所有者身份运行) |
chmod g+s |
设置SGID(目录下新建文件继承目录的组) | |
chmod +t |
设置Sticky Bit(目录内文件仅所有者可删除,如/tmp) |
|
| 切换与查看 | su |
切换用户(-或-l模拟登录环境) |
sudo |
以其他用户身份执行命令(依赖/etc/sudoers配置) |
|
id |
查看用户UID、GID及所属组信息 | |
whoami |
显示当前登录用户名 | |
groups |
查看用户所属的所有组 | |
| 配置文件 | /etc/passwd |
用户账户信息(用户名、UID、GID、家目录、默认shell) |
/etc/shadow |
用户密码及有效期信息(加密存储) | |
/etc/group |
用户组信息 | |
/etc/sudoers |
sudo权限配置(使用visudo编辑) |
|
| ACL高级权限 | setfacl |
设置文件/目录的访问控制列表(-m添加规则,-x删除规则) |
getfacl |
查看文件/目录的ACL规则 |
更多推荐



所有评论(0)