文章目录
- [Linux 用户和用户组管理详解](#Linux 用户和用户组管理详解)
- 添加和删除用户
- 用户组管理
- 禁用和启用用户
- 显示用户和组信息
- 高级用户管理
-
- 批量删除组内用户
- [配置 sudo 权限](#配置 sudo 权限)
- 用户和用户组的配置文件
- [用户的 UID 和 GID](#用户的 UID 和 GID)
- 用户密码过期设置
- 创建系统用户
- 限制用户的资源使用
- 用户登录时间限制
- 结语
Linux 用户和用户组管理详解
在 Linux 系统中,用户(user)和用户组(group)的管理是日常运维的重要部分。本篇将详细讲解如何添加和删除用户、用户组,并介绍常见的管理操作。
用户和用户组概念
-
用户(user):每个登录 Linux 系统的用户都有一个独立的身份。用户不仅可以操作自己的文件,还能基于权限访问其他资源。
-
用户组(group):用户组是多个用户的集合,组内用户拥有相同的权限。例如,你可以为多个用户分配同一组以便共享某些资源。
添加和删除用户
添加用户
bash
adduser username # 创建新用户
该命令会自动为用户创建主目录,并生成一些初始化文件。
示例:
bash
adduser test1
passwd test1# 设置 test1 用户密码
删除用户
bash
userdel username # 删除用户
注意 :使用 userdel
仅删除用户,用户的主目录和文件仍会保留。若要删除用户并同时删除其主目录,使用以下命令:
bash
userdel -r username # 删除用户及其主目录
用户组管理
添加用户组
bash
groupadd groupname # 创建新用户组
示例:
bash
groupadd test2 # 创建名为 test2 的用户组
删除用户组
bash
groupdel groupname # 删除用户组
groupdel test2 # 删除 test2 用户组
将用户加入用户组
你可以在创建用户时将其分配到一个特定用户组:
bash
useradd -g groupname username
示例:
bash
useradd -g test2 test2 # 将 test1 用户加入 test2 组
也可以在用户已存在时,将其加入某个组:
bash
usermod -aG groupname username
-aG
参数保证添加组而不移除其他用户组。
注意 :不要使用 usermod -G
,因为这会删除用户原有的组。
禁用和启用用户
临时禁用用户
通过在 /etc/shadow
文件中修改用户密码字段,可以临时禁用某用户:
bash
passwd username -l # 锁定用户
恢复用户
bash
passwd username -u # 解锁用户
显示用户和组信息
使用以下命令查看用户和组的详细信息:
bash
id username # 显示用户ID、组ID及所属组
cat /etc/passwd # 查看用户信息
cat /etc/group # 查看组信息
高级用户管理
批量删除组内用户
你可以使用以下命令从用户组中移除特定用户:
bash
gpasswd -d username groupname # 将用户从组中删除
示例:
bash
gpasswd -d test1 test2 # 将 test1 用户从 test2 组中移除
配置 sudo 权限
要允许某组用户无密码执行 sudo
命令,可以在 /etc/sudoers.d/
目录下创建文件,内容如下:
bash
%groupname ALL=(ALL) NOPASSWD: ALL
示例:
bash
%devteam ALL=(ALL) NOPASSWD: ALL
这样,devteam
组的所有用户都可以无密码执行 sudo
操作。
用户和用户组的配置文件
/etc/passwd
:存放系统中所有用户的基本信息。/etc/shadow
:存储用户的加密密码及密码过期时间等信息。/etc/group
:存储用户组信息。/etc/gshadow
:存储用户组的加密信息。
用户的 UID 和 GID
每个用户都有一个唯一的用户 ID(UID)和组 ID(GID),这些标识用于确定文件系统中的权限。
- UID:用户 ID,用于标识系统中的用户,通常从 1000 开始分配给普通用户。
- GID:组 ID,用于标识用户所属的主组。默认情况下,用户的 GID 与其 UID 相同。
查看 UID 和 GID:
bash
id username
手动指定 UID 或 GID:
bash
useradd -u 1500 -g 1500 username # 指定 UID 和 GID
用户密码过期设置
在安全性要求较高的环境中,可以设置用户密码的有效期,以强制定期更新密码。
查看密码有效期:
bash
chage -l username # 查看用户密码的过期信息
设置密码有效期:
bash
chage -M 90 username # 设置密码有效期为 90 天
chage -E "2024-12-31" username # 设置用户账号到期时间
创建系统用户
系统用户是用于系统服务和后台进程的用户,通常不允许登录。你可以通过指定 -r
参数来创建系统用户:
bash
adduser -r systemuser
限制用户的资源使用
为了防止某个用户占用过多的系统资源,可以设置用户的资源限制。这些限制通过 ulimit
或配置 /etc/security/limits.conf
文件来实现。
修改 limits.conf
示例:
bash
username soft nproc 1000 # 限制最大进程数为 1000
username hard nproc 2000 # 硬性限制最大进程数为 2000
username soft nofile 1024 # 限制最大文件描述符数
用户登录时间限制
如果需要限制某个用户只能在特定时间内登录系统,可以通过 pam_time.so
模块来实现,配置 /etc/security/time.conf
文件:
配置示例:
bash
login ; * ; username ; Al0800-1800 # 限制用户只能在早上 8 点到晚上 6 点之间登录
结语
通过本文的详细讲解,您可以掌握 Linux 系统中用户和用户组的管理操作。无论是创建新用户、删除用户、还是调整用户组权限,这些命令和技巧都能帮助您高效地管理系统用户和组。