在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文件中。
