Yang's blog Yang's blog
首页
Java
密码学
机器学习
命令手册
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

xiaoyang

编程爱好者
首页
Java
密码学
机器学习
命令手册
关于
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • System

    • HomeBrew介绍
  • Git

    • Git 命令入门指南
  • shell

    • shell编程中常用的符号
  • docker

    • Docker介绍
    • Dockerfile :构建自己的 Docker 镜像
    • Docker Compose :容器编排工具
  • Linux

    • Linux基础知识
    • Linux 文件系统
    • Linux 用户管理
      • 1. 用户与用户组概念
        • 用户相关文件
      • 2. 添加、删除、修改用户
        • (1)添加用户
        • (2)修改用户
        • (3)删除用户
      • 3. 用户组与权限管理
        • (1)添加和删除用户组
        • (2)管理用户组
        • (3)权限管理
      • 4. 限制用户权限
        • (1)chroot 机制
        • (2)sudo 权限管理
      • 5. 账号安全管理
        • (1)密码策略
        • (2)账户锁定与解锁
        • (3)限制登录
        • (4)控制用户登录时间
    • Linux 权限与安全
    • Linux 网络管理
    • Linux 进程管理
    • Linux 常用命令
  • 命令手册
  • Linux
xiaoyang
2025-03-03
目录

Linux 用户管理

# 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 命令创建新用户:

useradd [选项] 用户名
1

常用选项:

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

示例:

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

# (2)修改用户

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

usermod [选项] 用户名
1

常用选项:

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

示例:

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

# (3)删除用户

使用 userdel 命令删除用户:

userdel [选项] 用户名
1

常用选项:

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

示例:

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

# 3. 用户组与权限管理

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

使用 groupadd 命令创建用户组:

groupadd 组名
1

示例:

groupadd developers
1

使用 groupdel 命令删除用户组:

groupdel 组名
1

示例:

groupdel developers
1

# (2)管理用户组

  • gpasswd
    
    1

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

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

示例:

gpasswd -a alice developers
gpasswd -d alice developers
1
2

# (3)权限管理

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

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

示例:

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

# 4. 限制用户权限

# (1)chroot 机制

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

chroot /home/jail /bin/bash
1

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

# (2)sudo 权限管理

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

visudo
1

示例:

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

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


# 5. 账号安全管理

# (1)密码策略

passwd 命令用于修改密码:

passwd 用户名
1

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

# (2)账户锁定与解锁

  • 锁定账户:

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

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

# (3)限制登录

  • /etc/nologin
    
    1

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

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

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

    echo "tty1" >> /etc/securetty
    
    1

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

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

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

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

编辑 (opens new window)
上次更新: 2025/04/01, 01:48:12

← Linux 文件系统 Linux 权限与安全→

最近更新
01
操作系统
03-18
02
Nginx
03-17
03
后端服务端主动推送消息的常见方式
03-11
更多文章>
Theme by Vdoing | Copyright © 2023-2025 xiaoyang | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式