如何管理 Linux 用户账户和权限

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本教程全面介绍了 Linux 用户和权限,涵盖了在 Linux 系统上管理用户访问和安全性的关键概念和实用技术。你将了解不同类型的 Linux 用户,理解权限系统,并探索如何有效地管理用户账户和与用户相关的文件。

Linux 用户与权限简介

Linux 是一个多用户操作系统,这意味着多个用户可以同时访问和使用该系统。每个用户都有自己的一组权限和特权,这些权限和特权决定了他们在系统上可以做什么和不可以做什么。理解 Linux 用户和权限对于系统管理和安全至关重要。

Linux 用户类型

在 Linux 中,主要有三种类型的用户:

  1. 根用户:根用户,也称为超级用户,拥有最高级别的特权,可以在系统上执行任何操作。
  2. 普通用户:普通用户的权限有限,只能执行他们被授权的操作。
  3. 系统用户:系统用户是系统为特定目的创建的特殊用户,例如运行系统服务和守护进程。

用户权限

Linux 使用权限系统来控制用户在系统上可以执行的操作。权限分为三个主要类别:

  1. 读取(r):允许用户查看文件或目录的内容。
  2. 写入(w):允许用户修改文件或目录的内容。
  3. 执行(x):允许用户将文件作为程序运行。

可以为文件或目录的所有者、文件或目录所属的组以及所有其他用户设置权限。

graph TD A[文件/目录] --> B[所有者权限] A --> C[组权限] A --> D[其他权限] B --> E[读取] B --> F[写入] B --> G[执行] C --> H[读取] C --> I[写入] C --> J[执行] D --> K[读取] D --> L[写入] D --> M[执行]

用户组

除了单个用户权限外,Linux 还使用用户组来管理权限。用户可以被添加到一个或多个组中,组的权限将应用于该组的所有成员。

## 将用户添加到组
sudo usermod -a -G 组名 用户名

## 创建新组
sudo groupadd 组名

## 列出用户所属的所有组
groups 用户名

通过理解 Linux 用户和权限,系统管理员可以有效地管理用户访问并确保系统的安全。

管理用户账户

管理用户账户是 Linux 系统管理的一个关键方面。作为系统管理员,你需要能够创建、删除和修改用户账户,以确保系统的正常运行和安全。

创建新用户

要在 Ubuntu 22.04 中创建新用户账户,你可以使用 useradd 命令:

sudo useradd -m -s /bin/bash 用户名

-m 选项为新用户创建一个主目录,-s 选项将默认 shell 设置为 Bash。

删除用户

要删除用户账户,你可以使用 userdel 命令:

sudo userdel -r 用户名

-r 选项会删除用户的主目录和邮件假脱机文件。

修改用户密码

要修改用户密码,你可以使用 passwd 命令:

sudo passwd 用户名

这将提示你输入并确认指定用户的新密码。

查看用户信息

要查看用户信息,你可以使用 id 命令:

id 用户名

这将显示用户的 UID(用户 ID)、GID(组 ID)以及用户所属的组。

你还可以使用 finger 命令获取有关用户的更详细信息:

finger 用户名

这将显示用户的全名、登录名、主目录、shell 以及其他相关信息。

通过了解如何在 Linux 中管理用户账户,你可以确保系统安全并可供适当的用户访问。

理解 Linux 用户文件

在 Linux 中,与用户相关的信息存储在几个重要的系统文件中。这些文件包含有关用户账户、用户组和用户密码的关键信息。理解这些文件对于系统管理和用户管理至关重要。

/etc/passwd 文件

/etc/passwd 文件是一个纯文本文件,包含系统上用户账户的信息。文件中的每一行代表一个用户账户,分为七个字段,用冒号分隔:

  1. 用户名
  2. 密码(x 表示密码存储在 /etc/shadow 文件中)
  3. 用户 ID(UID)
  4. 组 ID(GID)
  5. 用户的全名或注释
  6. 用户的主目录
  7. 用户的默认 shell
用户名:x:1000:1000:用户名,,,:/home/用户名:/bin/bash

/etc/shadow 文件

/etc/shadow 文件是 /etc/passwd 文件更安全的版本,因为它存储加密的用户密码。此文件只能由根用户读取,从而确保用户密码的安全性。

/etc/shadow 文件中的每一行代表一个用户账户,分为九个字段,用冒号分隔:

  1. 用户名
  2. 加密密码
  3. 上次密码更改时间(自 1970 年 1 月 1 日起的天数)
  4. 最短密码使用期限(天数)
  5. 最长密码使用期限(天数)
  6. 密码警告期限(天数)
  7. 密码过期后账户无活动的期限(天数)
  8. 账户过期日期(自 1970 年 1 月 1 日起的天数)
  9. 保留字段
用户名:$6$rounds=65536$盐值$加密后的密码:18393:0:99999:7:::

/etc/group 文件

/etc/group 文件包含系统上组的信息。文件中的每一行代表一个组,分为四个字段,用冒号分隔:

  1. 组名
  2. 组密码(x 表示密码存储在 /etc/gshadow 文件中)
  3. 组 ID(GID)
  4. 用逗号分隔的组成员列表
组名:x:1000:用户名1,用户名2

通过理解这些重要的 Linux 用户文件,你可以有效地管理用户账户并确保系统的安全。

总结

在本教程中,你已经了解了不同类型的 Linux 用户,包括根用户、普通用户和系统用户。你还探索了 Linux 权限系统,该系统控制用户在系统上可以执行的操作。此外,你已经了解了用户组以及如何使用它们来管理权限。通过掌握这些概念,你将更有能力有效地管理用户账户并确保你的 Linux 系统的安全。