在Linux云主机中,用户管理是系统安全和运维的核心环节,涉及用户的创建、权限分配、密码策略、资源限制等多个方面,合理的用户管理不仅能保障系统安全,还能提升多用户协作效率,以下从基础操作到高级配置,详细说明Linux云主机的用户管理方法。

用户与用户组的基础概念
Linux系统通过用户(User)和用户组(Group)实现权限管理,用户是系统操作的主体,每个用户拥有唯一的UID(用户标识符);用户组是用户的集合,通过GID(组标识符)简化权限分配,用户组可分为主要组(每个用户只有一个,创建用户时自动生成)和附加组(用户所属的额外组,用于扩展权限)。
用户创建与管理
创建用户
使用useradd
或adduser
命令创建用户,二者区别在于:useradd
是底层命令,需手动配置参数;adduser
是交互式友好命令,适合快速创建。
- 基本语法:
sudo useradd [选项] 用户名
- 常用选项:
-m
:自动创建用户主目录(默认为/home/用户名
);-s
:指定用户默认Shell(如/bin/bash
、/bin/sbin
);-G
:指定附加组(多个组用逗号分隔);-c
:添加用户注释(如真实姓名)。
示例:创建名为devuser
的用户,主目录为/home/devuser
,附加组为docker
和sudo
,默认Shell为/bin/bash
:
sudo useradd -m -s /bin/bash -G docker,sudo -c "Developer User" devuser
修改用户信息
使用usermod
命令修改用户属性,语法与useradd
类似:

-l
:修改用户名(如sudo usermod -l newname oldname
);-aG
:追加附加组(需配合-a
,否则会覆盖原有附加组);-L
/-U
:锁定/解锁用户账户(锁定后用户无法登录)。
示例:为devuser
追加www
附加组:
sudo usermod -aG www devuser
删除用户
使用userdel
命令删除用户,-r
选项会同时删除用户主目录和邮件池:
sudo userdel -r devuser
用户组管理
创建与删除用户组
- 创建组:
sudo groupadd 组名
- 删除组:
sudo groupdel 组名
(需确保组内无用户)
修改用户组
使用groupmod
命令修改组名:sudo groupmod -n 新组名 旧组名
密码管理
设置/修改用户密码
使用passwd
命令,普通用户只能修改自己的密码,root可修改所有用户密码:

sudo passwd devuser # 为devuser设置密码
密码策略可通过/etc/login.defs
和/etc/pam.d/common-password
配置,如强制密码复杂度、定期更新等。
锁定/解锁密码
- 锁定用户密码:
sudo passwd -l devuser
- 解锁用户密码:
sudo passwd -u devuser
用户权限与sudo配置
文件权限管理
Linux文件权限通过r(读)
、w(写)
、x(执行)
组合,分别对应用户、用户组、其他用户的权限,使用chmod
修改权限,chown
修改所有者。
示例:将/data
目录所有者改为devuser
,并设置用户组为www
,权限为750
(用户可读写执行,用户组可读执行,其他用户无权限):
sudo chown devuser:www /data sudo chmod 750 /data
sudo权限配置
允许普通用户以root身份执行命令,需编辑/etc/sudoers
文件(推荐使用visudo
命令避免语法错误):
- 为用户添加sudo权限:
devuser ALL=(ALL:ALL) ALL
- 限制执行命令:
devuser ALL=(ALL:ALL) /usr/bin/apt, /usr/bin/systemctl
- 使用NOPASSWD选项:
devuser ALL=(ALL:ALL) NOPASSWD: /usr/bin/docker
(用户执行指定命令时无需输入密码)
用户资源限制
为防止用户滥用资源(如CPU、内存、磁盘空间),可通过/etc/security/limits.conf
配置资源限制。
示例:限制devuser
最大进程数为100,最大打开文件数为1024,硬盘软限制为10GB,硬限制为15GB:
devuser soft nproc 100 devuser hard nproc 100 devuser soft nofile 1024 devuser hard nofile 1024 devuser soft fsize 10485760 # 10GB(单位为KB) devuser hard fsize 15728640 # 15GB
用户查询与审计
查看用户信息
cat /etc/passwd
:查看所有用户信息(包含用户名、UID、GID、主目录、Shell等);id [用户名]
:查看用户的UID、GID及所属组;last [用户名]
:查看用户登录历史。
审计用户操作
通过auditd
服务监控用户行为,例如监控/etc/sudoers
文件修改:
sudo auditctl -w /etc/sudoers -p wa -k sudoers_mod
日志可通过ausearch -k sudoers_mod
查看。
批量用户管理(可选)
对于需要批量创建用户场景(如教学环境),可结合newusers
和chpasswd
命令:
- 创建用户文件
users.txt
,格式为用户名:密码:UID:GID:注释:主目录:Shell
:dev1:Pass123!::1001:Developer:/home/dev1:/bin/bash dev2:Pass123!::1002:Developer:/home/dev2:/bin/bash
- 批量创建用户:
sudo newusers < users.txt
- 批量更新密码(如从文件
passwd.txt
读取用户名:密码
):sudo chpasswd < passwd.txt
安全最佳实践
- 最小权限原则:仅授予用户必要的权限,避免使用root账户日常操作;
- 禁用闲置账户:定期检查
/etc/passwd
,对长期不用的用户执行usermod -L
或删除; - SSH密钥登录:禁用密码登录,改用SSH密钥对提升安全性(配置
/etc/ssh/sshd_config
中的PasswordAuthentication no
); - 定期审计:通过
logrotate
管理日志,结合fail2ban
防范暴力破解。
相关问答FAQs
Q1:如何查看Linux系统中所有用户的列表?
A:可通过以下命令查看用户列表:
cat /etc/passwd | cut -d: -f1
:仅显示用户名;getent passwd
:显示系统所有用户(包括NIS、LDAP等远程用户);awk -F: '{print $1}' /etc/passwd
:同样可提取用户名。
Q2:如何限制用户只能通过SSH密钥登录,禁止密码登录?
A:需修改SSH配置文件并重启SSH服务:
- 编辑
/etc/ssh/sshd_config
,确保以下配置生效:PubkeyAuthentication yes # 启用密钥认证 PasswordAuthentication no # 禁用密码认证
- 重启SSH服务:
sudo systemctl restart sshd
(或sudo service ssh restart
); - 确保用户已将公钥(
~/.ssh/id_rsa.pub
)添加到目标主机的~/.ssh/authorized_keys
文件中。