简介
在 Linux 环境中,密码管理是维护系统安全的关键环节。系统管理员需要了解如何创建并执行安全的密码策略,以保护用户账户和敏感数据不被未经授权的访问。
在这个实验中,你将学习如何使用 passwd
命令来更改用户密码,并实施基本的密码策略。这些基础技能对于任何使用 Linux 系统的人来说都是必不可少的,尤其是那些涉及用户账户管理和系统安全的工作岗位。
在 Linux 环境中,密码管理是维护系统安全的关键环节。系统管理员需要了解如何创建并执行安全的密码策略,以保护用户账户和敏感数据不被未经授权的访问。
在这个实验中,你将学习如何使用 passwd
命令来更改用户密码,并实施基本的密码策略。这些基础技能对于任何使用 Linux 系统的人来说都是必不可少的,尤其是那些涉及用户账户管理和系统安全的工作岗位。
在 Linux 系统中,passwd
命令用于更改用户密码。该命令允许用户更改自己的密码,而系统管理员可以更改系统上任何账户的密码。
让我们先创建一个新用户,用于练习密码管理。打开终端,并确保你处于默认工作目录:
cd ~/project
现在,使用 useradd
命令创建一个名为 cyberuser
的新用户:
sudo useradd cyberuser
此命令会创建一个新的用户账户,但不会为其设置密码。当你创建用户时未指定密码,该账户通常默认处于锁定状态。
你可以使用 id
命令验证用户是否已创建:
id cyberuser
你应该会看到类似以下的输出:
uid=1001(cyberuser) gid=1001(cyberuser) groups=1001(cyberuser)
既然我们已经创建了一个新用户,那就使用 passwd
命令为该账户设置密码:
sudo passwd cyberuser
运行此命令后,系统会提示你输入新密码并再次输入以进行确认:
New password:
Retype new password:
passwd: password updated successfully
提示输入密码时,输入你选择的密码。出于安全考虑,你输入的密码不会显示在屏幕上。
passwd
命令会更新指定用户账户的密码。使用 sudo 权限执行该命令时,你可以更改系统上任何用户的密码。
要查看用户密码的相关信息,包括上次更改的时间,你可以使用 chage -l
命令,后跟用户名:
sudo chage -l cyberuser
此命令会显示用户密码的老化和过期策略信息。输出内容会类似于以下内容:
Last password change : Jul 15, 2023
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
这些信息有助于你了解应用于用户账户的当前密码策略。
在 Linux 中,密码信息存储在几个重要的系统文件中。了解这些文件有助于管理员有效地管理用户账户。
导航到你的项目目录:
cd ~/project
让我们来查看存储密码和用户账户信息的关键文件:
/etc/passwd
文件,它包含基本的用户账户信息:grep cyberuser /etc/passwd
你应该会看到类似以下的输出:
cyberuser:x:1001:1001::/home/cyberuser:/bin/sh
这一行包含几个由冒号分隔的字段:
cyberuser
x
(实际密码存储在 /etc/shadow
中)1001
1001
/home/cyberuser
/bin/sh
sudo grep cyberuser /etc/shadow
输出将显示加密的密码和相关信息:
cyberuser:$6$xxxxxxxxxxxxxxxxxxx:19189:0:99999:7:::
这一行中的字段包括:
这些信息对于理解 Linux 系统中密码安全的实现方式至关重要。
Linux 提供了多种工具来实施密码策略,这些策略通过确保用户选择强密码来帮助维护系统安全。在这一步中,你将学习如何实施基本的密码策略。
chage
命令允许管理员设置密码过期策略。导航到你的项目目录:
cd ~/project
让我们将 cyberuser
账户的最大密码使用期限设置为 90 天:
sudo chage -M 90 cyberuser
此命令设置了用户在需要更改密码之前,密码保持有效的最大天数。
你还可以设置最小密码使用期限,以防止用户过于频繁地更改密码:
sudo chage -m 7 cyberuser
此命令要求用户在再次更改密码之前至少等待 7 天。
验证你所做的更改:
sudo chage -l cyberuser
你应该会看到更新后的密码策略信息:
Last password change : Jul 15, 2023
Password expires : Oct 13, 2023
Password inactive : never
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
现在,让我们创建一个脚本来实施更高级的密码策略。创建一个名为 cyberpolicy.sh
的新文件:
nano ~/project/cyberpolicy.sh
将以下内容添加到文件中:
#!/bin/bash
## Enforce password complexity
echo "password requisite pam_pwquality.so retry=3 minlen=8 difok=3" | sudo tee -a /etc/pam.d/common-password
## Set password expiration policy for all new users
echo "PASS_MAX_DAYS 90" | sudo tee -a /etc/login.defs
echo "PASS_MIN_DAYS 7" | sudo tee -a /etc/login.defs
echo "PASS_WARN_AGE 7" | sudo tee -a /etc/login.defs
echo "Password policy has been updated successfully."
按 Ctrl+O
保存文件,然后按 Enter
,再按 Ctrl+X
退出 nano。
使脚本可执行:
chmod +x ~/project/cyberpolicy.sh
此脚本设置了以下密码策略:
在生产环境中,你可以执行此脚本来应用这些策略。不过,在这个实验中,我们仅查看其内容,以了解如何实施密码策略。
在这个实验中,你学习了 Linux 系统中密码管理的重要技能。你练习了:
useradd
命令创建新的用户账户passwd
命令设置和更改密码/etc/passwd
和 /etc/shadow
等系统文件中查看密码信息chage
命令设置密码过期策略这些技能对于需要通过实施适当的密码管理实践来维护系统安全的系统管理员来说是基础。通过了解如何实施强密码策略,你可以显著增强 Linux 系统的安全性,并保护它们免受未经授权的访问。
在你继续学习的过程中,可以考虑探索更高级的主题,例如 PAM(可插拔认证模块)配置、实施多因素认证,以及在企业环境中自动化用户账户管理。