菜鸟科技网

Linux云主机用户管理有哪些核心方法?

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

Linux云主机用户管理有哪些核心方法?-图1
(图片来源网络,侵删)

用户与用户组的基础概念

Linux系统通过用户(User)和用户组(Group)实现权限管理,用户是系统操作的主体,每个用户拥有唯一的UID(用户标识符);用户组是用户的集合,通过GID(组标识符)简化权限分配,用户组可分为主要组(每个用户只有一个,创建用户时自动生成)和附加组(用户所属的额外组,用于扩展权限)。

用户创建与管理

创建用户

使用useraddadduser命令创建用户,二者区别在于:useradd是底层命令,需手动配置参数;adduser是交互式友好命令,适合快速创建。

  • 基本语法:sudo useradd [选项] 用户名
  • 常用选项:
    • -m:自动创建用户主目录(默认为/home/用户名);
    • -s:指定用户默认Shell(如/bin/bash/bin/sbin);
    • -G:指定附加组(多个组用逗号分隔);
    • -c:添加用户注释(如真实姓名)。

示例:创建名为devuser的用户,主目录为/home/devuser,附加组为dockersudo,默认Shell为/bin/bash

sudo useradd -m -s /bin/bash -G docker,sudo -c "Developer User" devuser

修改用户信息

使用usermod命令修改用户属性,语法与useradd类似:

Linux云主机用户管理有哪些核心方法?-图2
(图片来源网络,侵删)
  • -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可修改所有用户密码:

Linux云主机用户管理有哪些核心方法?-图3
(图片来源网络,侵删)
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查看。

批量用户管理(可选)

对于需要批量创建用户场景(如教学环境),可结合newuserschpasswd命令:

  1. 创建用户文件users.txt,格式为用户名:密码:UID:GID:注释:主目录:Shell
    dev1:Pass123!::1001:Developer:/home/dev1:/bin/bash
    dev2:Pass123!::1002:Developer:/home/dev2:/bin/bash
  2. 批量创建用户:sudo newusers < users.txt
  3. 批量更新密码(如从文件passwd.txt读取用户名:密码):sudo chpasswd < passwd.txt

安全最佳实践

  1. 最小权限原则:仅授予用户必要的权限,避免使用root账户日常操作;
  2. 禁用闲置账户:定期检查/etc/passwd,对长期不用的用户执行usermod -L或删除;
  3. SSH密钥登录:禁用密码登录,改用SSH密钥对提升安全性(配置/etc/ssh/sshd_config中的PasswordAuthentication no);
  4. 定期审计:通过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服务:

  1. 编辑/etc/ssh/sshd_config,确保以下配置生效:
    PubkeyAuthentication yes  # 启用密钥认证
    PasswordAuthentication no  # 禁用密码认证
  2. 重启SSH服务:sudo systemctl restart sshd(或sudo service ssh restart);
  3. 确保用户已将公钥(~/.ssh/id_rsa.pub)添加到目标主机的~/.ssh/authorized_keys文件中。
分享:
扫描分享到社交APP
上一篇
下一篇