Skip to content
xiaoyang 的头像xiaoyang发布于 2025-03-032,482 字阅读约 8 分钟浏览加载中

Linux 用户管理 ​

在 Linux 系统中,用户管理是系统安全和资源分配的核心部分。本章将详细介绍 Linux 用户管理的相关概念和操作,包括用户与用户组的基本概念、用户的添加与删除、用户组的管理、权限控制以及账号安全管理等内容。

1. 用户与用户组概念 ​

Linux 是一个多用户、多任务的操作系统,每个用户都有自己的权限和资源范围。为了更好地管理用户,Linux 采用了**用户组(User Group)**的概念。

  • 用户(User):系统中的一个独立身份,每个用户都有唯一的用户 ID(UID)。
  • 用户组(Group):一组用户的集合,用户组的存在有助于管理多个用户的访问权限,用户组由唯一的组 ID(GID)标识。

用户相关文件 ​

  • /etc/passwd:存储用户基本信息,如用户名、UID、GID、主目录、登录 Shell 等。
  • /etc/shadow:存储用户密码的加密信息及密码策略,如密码有效期、过期时间等。
  • /etc/group:存储用户组信息,如组名、GID、组内用户列表。

2. 添加、删除、修改用户 ​

(1)添加用户 ​

使用 useradd 命令创建新用户:

bash
useradd [选项] 用户名

常用选项:

  • -u UID:指定用户 ID。
  • -g GID:指定主组 ID。
  • -G 组名:指定附加组。
  • -d /home/目录:指定用户主目录。
  • -s /bin/bash:指定默认 shell。

示例:

bash
useradd -u 1001 -g users -G sudo -d /home/alice -s /bin/bash alice
passwd alice  # 设置用户密码

(2)修改用户 ​

使用 usermod 命令更改用户属性:

bash
usermod [选项] 用户名

常用选项:

  • -l 新用户名:修改用户名。
  • -u 新UID:修改用户 ID。
  • -g 新GID:修改主组。
  • -G 新附加组:修改附加组。
  • -d 新目录 -m:修改主目录并移动数据。
  • -s 新shell:修改默认 shell。

示例:

bash
usermod -l alice_new alice  # 修改用户名
usermod -G docker alice_new  # 添加用户到 docker 组

(3)删除用户 ​

使用 userdel 命令删除用户:

bash
userdel [选项] 用户名

常用选项:

  • -r:删除用户同时删除其主目录。

示例:

bash
userdel -r alice_new  # 删除用户并清理其主目录

3. 用户组与权限管理 ​

(1)添加和删除用户组 ​

使用 groupadd 命令创建用户组:

bash
groupadd 组名

示例:

bash
groupadd developers

使用 groupdel 命令删除用户组:

bash
groupdel 组名

示例:

bash
groupdel developers

(2)管理用户组 ​

  • gpasswd

    命令可用于管理组的管理员和组成员:

    bash
    gpasswd -a 用户名 组名  # 将用户添加到组
    gpasswd -d 用户名 组名  # 从组中删除用户

示例:

bash
gpasswd -a alice developers
gpasswd -d alice developers

(3)权限管理 ​

Linux 文件权限由**所有者(Owner)、用户组(Group)、其他用户(Others)**组成,使用 chmod、chown 和 chgrp 进行管理:

bash
chmod 750 文件名  # 修改权限
chown 用户名:组名 文件名  # 修改文件所有者和所属组
chgrp 组名 文件名  # 修改文件所属组

示例:

bash
chmod 755 script.sh  # 使脚本可执行
chown root:admin config.conf  # 赋予 root 账户和 admin 组权限

4. 限制用户权限 ​

(1)chroot 机制 ​

chroot 命令可用于创建一个虚拟的根目录,限制用户访问系统的其他部分。

bash
chroot /home/jail /bin/bash

常用于创建受限环境,如 SFTP 访问。

(2)sudo 权限管理 ​

/etc/sudoers 文件用于管理用户的 sudo 权限:

bash
visudo

示例:

bash
alice ALL=(ALL) NOPASSWD: /bin/systemctl restart nginx

允许用户 alice 在无需输入密码的情况下重启 nginx。


5. 账号安全管理 ​

(1)密码策略 ​

passwd 命令用于修改密码:

bash
passwd 用户名

/etc/login.defs 及 /etc/security/pwquality.conf 控制密码策略,如密码复杂度、最短长度等。

(2)账户锁定与解锁 ​

  • 锁定账户:

    bash
    usermod -L 用户名  # 锁定用户
  • 解锁账户:

    bash
    usermod -U 用户名  # 解锁用户

(3)限制登录 ​

  • /etc/nologin

    文件可用于临时禁止普通用户登录:

    bash
    echo "系统维护中,请稍后登录。" > /etc/nologin
  • /etc/securetty

    允许 root 账户在哪些终端登录:

    bash
    echo "tty1" >> /etc/securetty

(4)控制用户登录时间 ​

/etc/security/time.conf 可配置用户访问时段:

bash
login ; tty* ; alice ; !Wk0800-1800

表示 alice 用户在工作日 08:00-18:00 之外无法登录。

DISCUSSION

评论区

欢迎分享你的思考、补充或问题。

基于 VitePress 搭建