20250508
如何在 Linux 中进行用户和组的管理?

在 Linux 系统中,用户和组的管理是系统管理的重要组成部分。通过用户和组的管理,可以控制对系统资源的访问权限,确保系统的安全性和稳定性。以下是一些常用的命令和步骤,用于管理用户和组。

一、用户管理

1. 添加用户

使用 useradd 命令可以添加新用户。

  • 基本语法
    sudo useradd [选项] <用户名>
  • 常用选项
    • -m:自动创建用户的家目录(默认在 /home 下)。
    • -s:指定用户的登录 shell。例如,-s /bin/bash
    • -G:指定用户所属的附加组。
  • 示例
    sudo useradd -m -s /bin/bash john

    这将创建一个名为 john 的用户,自动创建家目录,并设置默认 shell 为 /bin/bash

2. 设置用户密码

使用 passwd 命令为用户设置密码。

  • 基本语法
    sudo passwd <用户名>
  • 示例
    sudo passwd john

    系统会提示你输入新密码并确认。

3. 修改用户信息

使用 usermod 命令修改用户的属性。

  • 基本语法
    sudo usermod [选项] <用户名>
  • 常用选项
    • -l:更改用户名。
    • -d:更改用户的家目录。
    • -s:更改用户的登录 shell。
    • -G:更改用户所属的附加组。
  • 示例
    sudo usermod -l newjohn -d /home/newjohn -s /bin/tcsh john

    这将把用户 john 的用户名改为 newjohn,家目录改为 /home/newjohn,并设置默认 shell 为 /bin/tcsh

4. 删除用户

使用 userdel 命令删除用户。

  • 基本语法
    sudo userdel [选项] <用户名>
  • 常用选项
    • -r:同时删除用户的家目录。
  • 示例
    sudo userdel -r newjohn

    这将删除用户 newjohn 及其家目录。

二、组管理

1. 添加组

使用 groupadd 命令创建新组。

  • 基本语法
    sudo groupadd <组名>
  • 示例
    sudo groupadd developers

    这将创建一个名为 developers 的组。

2. 添加用户到组

使用 usermodgpasswd 命令将用户添加到组。

  • 使用 usermod
    sudo usermod -aG <组名> <用户名>
    • -aG:将用户添加到附加组。
  • 使用 gpasswd
    sudo gpasswd -a <用户名> <组名>
  • 示例
    sudo usermod -aG developers john

    sudo gpasswd -a john developers

    这将把用户 john 添加到 developers 组。

3. 查看用户所属组

使用 groups 命令查看用户所属的组。

  • 基本语法
    groups <用户名>
  • 示例
    groups john

    输出示例:

    john : john developers

    这表示用户 john 属于 johndevelopers 两个组。

4. 删除组

使用 groupdel 命令删除组。

  • 基本语法
    sudo groupdel <组名>
  • 示例
    sudo groupdel developers

    这将删除 developers 组。注意,如果组中仍有用户,可能需要先将用户移出该组。

三、用户和组的其他管理命令

1. 查看所有用户

查看 /etc/passwd 文件,其中包含了系统中所有用户的信息。

  • 命令
    cat /etc/passwd

2. 查看所有组

查看 /etc/group 文件,其中包含了系统中所有组的信息。

  • 命令
    cat /etc/group

3. 查看当前登录用户

使用 who 命令查看当前登录的用户。

  • 命令
    who

4. 查看用户会话

使用 last 命令查看用户的登录历史。

  • 命令
    last

四、权限管理

用户和组的管理通常与文件和目录的权限管理结合使用。以下是一些常用的权限管理命令:

1. 修改文件或目录的所有者

使用 chown 命令修改文件或目录的所有者。

  • 基本语法
    sudo chown <用户>:<组> <文件或目录>
  • 示例
    sudo chown john:developers file.txt

    这将把 file.txt 的所有者改为用户 john,所属组改为 developers

2. 修改文件或目录的权限

使用 chmod 命令修改文件或目录的权限。

  • 基本语法
    chmod <权限> <文件或目录>
  • 权限表示
    • r(读权限):4
    • w(写权限):2
    • x(执行权限):1
    • 权限可以用数字表示,例如 755 表示所有者有读写执行权限,组和其他用户有读执行权限。
  • 示例
    chmod 755 file.txt

通过这些命令,你可以有效地管理 Linux 系统中的用户和组,确保系统的安全性和资源的合理分配。

相关阅读