如何设置 Linux 用户密码

LinuxLinuxBeginner
立即练习

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

简介

本全面指南探讨了在 Linux 系统中管理用户密码的关键方面。无论你是系统管理员还是 Linux 爱好者,了解如何设置和保护用户密码对于维护系统完整性和保护敏感信息至关重要。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/UserandGroupManagementGroup -.-> linux/useradd("User Adding") linux/UserandGroupManagementGroup -.-> linux/userdel("User Removing") linux/UserandGroupManagementGroup -.-> linux/usermod("User Modifying") linux/UserandGroupManagementGroup -.-> linux/passwd("Password Changing") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/UserandGroupManagementGroup -.-> linux/su("User Switching") linux/UserandGroupManagementGroup -.-> linux/groups("Group Displaying") linux/UserandGroupManagementGroup -.-> linux/whoami("User Identifying") subgraph Lab Skills linux/useradd -.-> lab-431417{{"如何设置 Linux 用户密码"}} linux/userdel -.-> lab-431417{{"如何设置 Linux 用户密码"}} linux/usermod -.-> lab-431417{{"如何设置 Linux 用户密码"}} linux/passwd -.-> lab-431417{{"如何设置 Linux 用户密码"}} linux/sudo -.-> lab-431417{{"如何设置 Linux 用户密码"}} linux/su -.-> lab-431417{{"如何设置 Linux 用户密码"}} linux/groups -.-> lab-431417{{"如何设置 Linux 用户密码"}} linux/whoami -.-> lab-431417{{"如何设置 Linux 用户密码"}} end

Linux 密码基础

理解 Linux 中的用户认证

在 Linux 系统中,用户认证是一种关键的安全机制,用于控制对系统资源的访问。密码是验证用户身份和保护敏感信息的主要方法。

密码存储机制

Linux 以加密格式将用户密码存储在两个关键文件中:

文件 用途 位置
/etc/passwd 用户账户信息 全系统范围的用户详细信息
/etc/shadow 加密密码存储 安全的密码管理

密码加密方法

graph TD A[密码加密] --> B[SHA-512] A --> C[MD5] A --> D[Blowfish] B --> E[现代默认方法] C --> F[旧方法] D --> G[替代方法]

关键密码特征

  • 密码区分大小写
  • 最大长度通常为 255 个字符
  • 支持复杂字符组合
  • 使用单向哈希算法进行加密

用户密码类型

  1. 系统密码:根账户和系统账户凭证
  2. 用户密码:普通用户账户认证
  3. 服务密码:特定系统服务的凭证

认证工作流程

当用户尝试登录时,Linux 按以下步骤进行:

  1. 接收用户名和密码
  2. 从 /etc/shadow 中检索加密密码
  3. 对输入的密码进行哈希处理
  4. 比较存储的和输入的密码哈希值
  5. 授予或拒绝系统访问权限

在 LabEx,我们强调理解这些基本的密码管理原则,以实现安全的 Linux 系统管理。

用户密码命令

基本密码管理命令

Linux 提供了几个强大的命令来有效地管理用户密码:

命令 功能 使用方法
passwd 更改用户密码 passwd [用户名]
chpasswd 更新多个用户密码 chpasswd < 用户列表文件.txt
passwd -l 锁定用户账户 passwd -l 用户名
passwd -u 解锁用户账户 passwd -u 用户名

更改用户密码

## 更改当前用户密码
passwd

## 更改其他用户的密码(需要 root 权限)
sudo passwd 用户名

密码配置选项

graph TD A[密码命令选项] --> B[密码有效期] A --> C[密码强度] A --> D[账户锁定] B --> E[chage 命令] C --> F[密码复杂性] D --> G[账户限制]

高级密码管理

密码有效期控制

## 查看密码有效期信息
sudo chage -l 用户名

## 设置密码过期时间
sudo chage -M 90 用户名

密码强度配置

## 安装密码强度检查工具
sudo apt-get install libpam-pwquality

## 在 /etc/security/pwquality.conf 中配置密码复杂性
minlen=12  ## 最小密码长度
dcredit=-1 ## 至少需要一位数字
ucredit=-1 ## 至少需要一个大写字母

用户账户密码操作

  1. 创建带有密码的新用户
## 创建用户并设置密码
sudo useradd -m 新用户名
sudo passwd 新用户名
  1. 禁用用户密码登录
## 禁用密码认证
sudo passwd -l 用户名

最佳实践

  • 使用强且唯一的密码
  • 定期更新密码
  • 实施密码复杂性规则
  • 尽可能使用多因素认证

在 LabEx,我们建议理解这些命令,以便在 Linux 环境中有效地管理用户认证。

密码安全提示

密码复杂性指南

创建强密码

graph TD A[强密码特征] --> B[至少12个字符] A --> C[混合字符类型] A --> D[避免使用个人信息] B --> E[长度很重要] C --> F[复杂性增强安全性] D --> G[防止轻易被猜出]

推荐的密码组成

特征 建议
长度 至少12 - 16个字符
复杂性 大写、小写、数字、符号
唯一性 每个账户使用不同的密码

Linux 密码安全技术

密码强度配置

## 安装密码质量检查工具
sudo apt-get install libpam-pwquality

## 配置 /etc/security/pwquality.conf
minlen = 12  ## 最小密码长度
dcredit = -1 ## 至少需要一位数字
ucredit = -1 ## 需要大写字母
lcredit = -1 ## 需要小写字母
ocredit = -1 ## 需要特殊字符

高级安全措施

实施多因素认证

  1. 安装认证工具
sudo apt update
sudo apt-get install libpam-google-authenticator
  1. 为SSH配置双因素认证
## 编辑SSH配置
sudo nano /etc/ssh/sshd_config
## 添加:AuthenticationMethods keyboard-interactive

密码保护策略

  • 使用密码管理器
  • 启用账户锁定策略
  • 实施定期密码轮换
  • 避免重复使用密码

监控与审计

## 检查上次密码更改
sudo lastchage -l 用户名

## 监控失败的登录尝试
sudo grep "Failed password" /var/log/auth.log

其他安全建议

  1. 禁用root直接登录
  2. 使用SSH密钥认证
  3. 安装fail2ban以防止暴力破解
## 安装fail2ban
sudo apt-get install fail2ban

在LabEx,我们强调密码安全是一个持续的过程,需要持续关注并适应新出现的威胁。

总结

通过掌握 Linux 用户密码技术,管理员可以增强系统安全性、控制用户访问并实施强大的认证策略。关键在于将命令行工具与强大的密码策略相结合,以创建一个安全且易于管理的 Linux 环境。