如何管理 Linux 用户和组权限

LinuxLinuxBeginner
立即练习

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

简介

本全面教程详细探讨了Linux用户和组管理,使读者具备在其Linux系统中有效管理用户账户和组成员身份的知识和技能。通过理解用户、组及其相关权限的概念,读者将能够增强其Linux环境的安全性、可访问性和整体管理水平。

Linux 用户基础

理解 Linux 中的用户概念

Linux 用户管理是系统管理和安全的关键方面。在 Linux 中,每个进程和文件都与一个用户和组相关联,这决定了访问权限。

Linux 中的用户类型

Linux 区分不同的用户类型:

用户类型 描述 特点
根用户 系统管理员 拥有完全系统访问权限,UID 为 0
系统用户 特定服务账户 权限有限,无登录 shell
普通用户 普通用户 对系统的访问权限有限

用户账户结构

graph TD A[用户账户] --> B[用户名] A --> C[用户 ID - UID] A --> D[主目录] A --> E[默认 shell]

基本用户命令

## 创建新用户
sudo adduser username

## 查看当前用户
whoami

## 列出所有用户
cat /etc/passwd

## 切换用户
su - username

## 查看用户详细信息
id username

用户信息存储

用户账户信息存储在关键系统文件中:

  • /etc/passwd:用户账户详细信息
  • /etc/shadow:加密的密码信息
  • /etc/group:组成员详细信息

用户认证过程

sequenceDiagram participant 用户 participant 系统 用户->>系统: 输入用户名 用户->>系统: 输入密码 系统->>系统: 验证凭证 系统-->>用户: 授予/拒绝访问

组权限

Linux 组管理基础

Linux 中的组提供了一种组织和控制用户对文件及系统资源访问的机制。每个用户可以属于多个组,从而实现灵活的权限管理。

组类型

组类型 描述 特点
主组 用户的默认组 与用户账户一同自动创建
次组 额外的组成员身份 允许扩展访问权限

组权限模型

graph TD A[文件/目录] --> B[所有者权限] A --> C[组权限] A --> D[其他用户权限]

组管理命令

## 创建新组
sudo groupadd developers

## 将用户添加到组
sudo usermod -aG developers username

## 列出用户所属的组
groups username

## 查看组信息
cat /etc/group

权限表示

## 权限格式:rwxrwxrwx
## r:读取,w:写入,x:执行
## 前三组:所有者权限
## 中间三组:组权限
## 最后三组:其他用户权限

## 示例
-rw-r--r-- file.txt

组权限演示

## 创建共享目录
mkdir /project
sudo chgrp developers /project
sudo chmod 770 /project

## 验证权限
ls -ld /project

组访问控制流程

sequenceDiagram participant 用户 participant 组 participant 资源 用户->>组: 成员身份 组->>资源: 访问请求 资源-->>组: 权限验证 组-->>用户: 授予/拒绝访问

用户管理

用户账户管理工作流程

Linux 中的用户管理涉及创建、修改和管理用户账户,并对系统访问和权限进行精确控制。

关键用户管理命令

命令 功能 使用方法
adduser 创建新用户 sudo adduser username
usermod 修改用户账户 sudo usermod -选项 username
userdel 删除用户账户 sudo userdel username
passwd 更改用户密码 sudo passwd username

用户创建过程

graph TD A[用户创建] --> B[生成用户名] A --> C[创建主目录] A --> D[设置初始密码] A --> E[分配用户/组ID]

用户账户创建示例

## 使用特定配置创建新用户
sudo adduser --gecos "开发者,办公室,电话,家庭" developer
sudo usermod -aG sudo developer

## 设置账户过期时间
sudo chage -E 2024-12-31 developer

## 锁定/解锁用户账户
sudo passwd -l username ## 锁定
sudo passwd -u username ## 解锁

高级用户配置

## 显示用户账户详细信息
sudo chage -l username

## 配置密码有效期
sudo chage -M 90 -m 7 -W 14 username

用户账户生命周期

stateDiagram-v2 [*] --> 创建 创建 --> 活跃 活跃 --> 非活跃 非活跃 --> 锁定 锁定 --> 删除 删除 --> [*]

安全最佳实践

## 限制用户登录
sudo usermod -s /sbin/nologin username

## 监控用户活动
last
lastb

用户信息存储

## 查看用户详细信息
cat /etc/passwd
cat /etc/shadow

总结

在本Linux教程中,我们涵盖了用户和组管理的重要方面,包括理解用户账户、列出和查看用户与组、管理用户的组成员身份,以及探索实际用例和故障排除技术。通过掌握这些概念,读者将能够有效地控制对系统资源的访问、实施安全策略,并确保用户在Linux环境中拥有执行其任务所需的权限。