管理本地用户和组:红帽企业 Linux 系统安全的基础
在红帽企业 Linux(RHEL)系统中,用户和组的管理是保障系统安全与有序运行的核心环节。通过合理配置用户账户、分配组权限,可有效控制用户对系统资源的访问,避免未授权操作和权限滥用。本文将系统介绍本地用户和组的概念、管理工具及最佳实践。
一、用户与组的核心概念
1. 用户账户的类型与作用
用户账户是系统安全的基础,用于区分不同操作者并控制其权限。Linux 系统中的用户主要分为三类:
- 超级用户(root):UID 为 0,拥有系统完全访问权限,负责系统管理,如安装软件、配置系统等。
- 系统用户:供服务进程使用(如数据库、Web 服务器),通常无法交互式登录,UID 范围为 1-999,确保服务间资源隔离。
- 普通用户:用于日常操作,UID 从 1000 开始,权限受限制,需通过授权获取高级操作权限。
每个用户通过唯一的用户名和 UID(用户 ID)标识,用户名便于人类识别,而系统内部通过 UID 区分用户。例如,id
命令可查看当前用户的 UID 及组信息:
[user01@host ~]$ id
uid=1000(user01) gid=1000(user01) groups=1000(user01)
2. 组的分类与权限继承
组是用户的集合,用于批量分配权限,分为主要组和补充组:
- 主要组:每个用户唯一所属的组,默认在创建用户时自动创建(与用户名相同),新文件的组所有权默认继承自主要组。
- 补充组:用户可加入多个补充组,用于获取额外权限,如
wheel
组通常用于授予 sudo 权限。
组信息存储在/etc/group
文件中,每行记录包含组名、GID(组 ID)及成员列表。例如:
group01:x:10000:user01,user02,user03
二、用户与组的管理工具
1. 用户管理命令
- 创建用户:
useradd
命令用于创建用户,默认生成同名主要组,需通过passwd
设置密码后才能登录:[root@host ~]# useradd operator1 # 创建用户 [root@host ~]# passwd operator1 # 设置密码
- 修改用户:
usermod
命令可调整用户属性,如更改主要组(-g
)、补充组(-G
)、锁定账户(-L
)等:[root@host ~]# usermod -G wheel operator1 # 添加到wheel组 [root@host ~]# usermod -L operator1 # 锁定账户
- 删除用户:
userdel
命令删除用户,-r
选项可同时删除主目录(避免残留文件归属问题):[root@host ~]# userdel -r operator1 # 彻底删除用户及主目录
2. 组管理命令
- 创建组:
groupadd
命令创建组,-g
可指定 GID:[root@host ~]# groupadd -g 30000 operators # 创建GID为30000的组
- 修改组:
groupmod
命令修改组属性,如重命名(-n
)、更改 GID(-g
):[root@host ~]# groupmod -n newgroup oldgroup # 重命名组
- 删除组:
groupdel
命令删除组(需确保组不是任何用户的主要组):[root@host ~]# groupdel operators # 删除组
三、超级用户访问与权限控制
1. 切换超级用户身份
su
命令:切换到其他用户,su -
以登录 shell 方式切换(加载目标用户环境):[user01@host ~]$ su - root # 切换到root用户
sudo
命令:临时以其他用户(默认 root)身份执行命令,需配置/etc/sudoers
授权:[user01@host ~]$ sudo systemctl restart httpd # 以root权限重启服务
2. sudo
配置方法
通过visudo
命令编辑/etc/sudoers
,或在/etc/sudoers.d/
目录添加配置文件,例如允许admin
组所有成员执行任何命令:
[root@host ~]# echo "%admin ALL=(ALL) ALL" > /etc/sudoers.d/admin
四、密码策略与账户安全
1. 密码期限管理
chage
命令用于配置密码过期策略,如设置最长有效期(-M
)、警告期(-W
)等:
[root@host ~]# chage -M 90 -W 7 operator1 # 密码90天过期,提前7天警告
2. 强制密码更改与账户锁定
- 强制用户首次登录更改密码:
[root@host ~]# chage -d 0 operator1 # 下次登录必须改密码
- 锁定账户(禁止登录):
[root@host ~]# usermod -L operator1 # 锁定账户 [root@host ~]# usermod -U operator1 # 解锁账户
五、总结
本地用户和组的管理是 Linux 系统安全的基础,通过useradd
、groupadd
等命令可创建和维护账户与组,结合sudo
实现权限精细控制,利用chage
和usermod
保障密码安全与账户可控。合理规划用户与组结构,可有效隔离资源、防范未授权访问,为系统稳定运行提供保障。