Linux 用户与组管理详解

发布于:2025-03-07 ⋅ 阅读:(12) ⋅ 点赞:(0)


Linux 用户与组管理详解

介绍

在 Linux 系统中,用户和组是实现权限控制和管理的基础。不同类型的用户和组拥有不同的权限和功能。在本博文中,我们将深入探讨 Linux 系统中的用户管理和组管理,包括常见的用户类型、UID、GID、如何管理用户和组、以及相关命令的使用方法。

用户管理

用户是 Linux 系统中最基本的实体之一,Linux 中有不同类型的用户,每个用户有一个唯一的 UID(用户标识号),用于系统区分不同的用户。

用户分类

  1. 超级用户:root
    作为 Linux 系统中的最高权限用户,root 用户拥有执行任何操作的权限。使用 root 用户时,务必小心谨慎,以免操作失误带来系统崩溃或数据丢失。

  2. 普通用户
    普通用户是用于日常的系统管理与使用。它们的权限受限,只能访问系统中自己的文件和部分公共资源。

  3. 程序用户
    程序用户主要用于运行特定的服务和程序,这些用户通常不能直接登录系统,且仅用于服务进程的管理和运行。

UID(用户标识号)

  • UID: 0:代表 root 用户,权限最高。
  • UID: 500-60000:代表普通用户。
  • UID: 1-499:代表程序用户。

用户账号文件

  • /etc/passwd:该文件包含了系统中所有用户的基本信息,包括用户名、用户ID、组ID、家目录路径和登录 shell。

    • 查看当前系统用户数量:

      cat /etc/passwd | wc -l
      
    • 查看所有用户信息:

      cat /etc/passwd
      
    • 解析示例:
      root:x:0:0:root:/root:/bin/bash
      各字段含义如下:

      • 用户名:root
      • 密码占位符:x(表示密码加密存储在 /etc/shadow 中)
      • 用户 UID:0
      • 组 GID:0
      • 用户描述:root
      • 用户家目录:/root
      • 登录 shell:/bin/bash

用户密码文件

  • /etc/shadow:保存着用户的加密密码及其他密码信息,如密码修改日期、最小修改期限等。

    • 查看用户密码配置:

      cat /etc/shadow
      
    • 解析示例:
      root:$$FHd:17211:0:99999:7:::

      各字段含义如下:

      • 用户名:root
      • 加密密码:$$FHd
      • 上次修改密码的时间:17211
      • 密码最短使用期限:0(可以随时修改密码)
      • 密码最大使用期限:99999(永不过期)
      • 密码提前提醒天数:7
      • 账号失效时间:无

常用用户管理命令

  • 添加用户

    useradd [选项] 用户名
    

    常用选项:

    • -u:指定 UID
    • -d:指定家目录
    • -e:指定账号失效时间
    • -M:不新建用户家目录
    • -s:指定登录 Shell

    示例:

    useradd -u 510 hehe
    useradd -s /sbin/nologin haha
    
  • 设置密码

    passwd [选项] 用户名
    

    常用选项:

    • -d:清空密码,允许无密码登录
    • -l:锁定账户
    • -u:解锁账户
    • -S:查看账户状态

    示例:

    passwd -d hehe
    passwd -l haha
    
  • 更改用户信息

    usermod [选项] 用户名
    

    常用选项:

    • -L:锁定账户
    • -U:解锁账户
    • -u:更改 UID
    • -d:更改家目录
    • -s:更改登录 Shell
    • -e:更改失效时间
  • 删除用户

    userdel [选项] 用户名
    

    常用选项:

    • -r:删除用户及其家目录

    示例:

    userdel -r hehe
    

组管理

在 Linux 中,组用于对一组用户进行权限管理。每个组都有一个 GID(组标识号)。

组分类

  1. 基本组:每个用户只能属于一个基本组,通常与用户名同名。
  2. 附加组:一个用户可以属于多个附加组,用于集体权限管理。
  3. root 组:root 用户所属的组。

GID(组标识号)

  • 基本组:GID 1-499
  • 附加组:GID 500-60000
  • root 组:GID 0

组账户文件

  • /etc/group:记录了系统中所有组的信息,包括组名、组成员等。

    示例:

    cat /etc/group
    

    解析示例:
    mail:x:12:mail,postfix

    各字段含义:

    • 组名:mail
    • 组密码占位符:x
    • GID:12
    • 组成员:mail, postfix

组管理命令

  • 新建组

    groupadd [选项] 组名
    

    示例:

    groupadd -g 600 qwe
    
  • 添加/删除用户到组

    gpasswd [选项] 用户名 组名
    

    常用选项:

    • -a:添加用户到组
    • -d:删除用户出组
    • -M:设置组成员

    示例:

    gpasswd -a hehe qwe
    gpasswd -d hehe qwe
    gpasswd -M hehe,haha qwe
    
  • 删除组

    groupdel 组名
    

查询账号信息

  • 查询用户信息

    id [用户名]
    

    查看用户的 UID、GID 及所属组。

  • 查询用户所属组

    groups [用户名]
    
  • 查询用户详细信息

    finger [用户名]
    

总结

Linux 系统的用户与组管理是系统安全和权限管理的重要部分。通过合理的用户和组设置,可以确保不同用户具有适当的权限,从而减少系统的安全风险。在日常使用中,掌握常见的用户管理和组管理命令对于系统管理员来说至关重要。

通过本文的学习,您应能熟练使用 Linux 用户与组管理的常用命令,合理分配权限,从而提高系统的安全性与管理效率。