60年来,密码一直是账户安全的基石,比Unix早了近十年。了解如何使用命令行或GNOME桌面环境在Linux中管理密码。
如何选择强密码
计算机密码是出于需要而产生的。随着多用户分时计算机系统的出现,分离和保护人们的数据的重要性变得明显,密码解决了这个问题。
密码仍然是最常见的帐户身份验证形式。双因素和多因素身份验证增强了密码保护,而生物特征身份验证提供了另一种身份验证方法。然而,好的旧密码还在我们身边,而且还会持续很长一段时间。这意味着你需要知道如何最好地创建和使用它们。一些较旧的做法已经不再有效。
以下是一些基本密码规则:
根本不要使用密码:改用密码短语。用标点符号、符号或数字连接三四个不相关的单词比破解一串官样文章或用元音换成数字的密码要难得多。 不要重复使用密码:不要在相同或不同的系统上执行此操作。 不要共享您的密码:密码是私有的。不要和别人分享。 不要根据个人重要信息来设置密码:不要使用家庭成员的名字、运动队、最喜欢的乐队或任何其他可能是社交工程的东西,或者从你的社交媒体中推断出来的东西。 不要使用模式密码:不要根据模式或密钥位置(如qwerty、1q2w3e等)设置密码。
密码过期策略不再是最佳做法。如果您采用强而安全的密码,则只有在您怀疑密码已被泄露时才需要更改它们。定期更改密码会在不经意间促进糟糕的密码选择,因为许多人使用基本密码,并且只在其末尾添加一个日期或数字。
美国国家标准与技术研究所(National Institute Of Standards And Technology)在密码以及用户身份识别和认证方面写了大量内容。他们的评论发表在特别出版物800-63-3:数字认证指南中。
密码文件
过去,类Unix操作系统将密码以及有关每个帐户的其他信息存储在“/etc/passwd”文件中。今天,“/etc/passwd”文件仍然保存帐户信息,但加密的密码保存在“/etc/dow”文件中,该文件具有受限的访问权限。相比之下,任何人都可以查看“/etc/passwd”文件。
要查看“/etc/passwd”文件内部,请键入以下命令:
less /etc/passwd
此时将显示该文件的内容。让我们看一下这个名为“Mary”的帐户的详细信息。
每行表示单个帐户(或具有“用户”帐户的程序)。有以下七个冒号分隔的字段:
用户名:帐户的登录名。 密码:“x”表示密码存储在/etc/dow文件中。 用户ID:此帐户的用户标识符。 组ID:此帐户的组标识符。 Gecos:这代表通用电气综合运营主管。今天,Gecos字段包含一组关于帐户的逗号分隔信息。这可以包括像一个人的全名、房间号码,或者办公室和家庭电话号码这样的项目。 home:帐户主目录的路径。 外壳:当用户登录到计算机时启动。
空字段由冒号表示。
顺便说一句,inger命令从gecos字段提取其信息。
finger mary
相关:如何在Linux上使用Finger命令
卷影文件
要查看“/etc/dow”文件,您必须使用sudo:
sudo less /etc/shadow
此时将显示该文件。对于“/etc/passwd”文件中的每个条目,“/etc/dow”文件中都应该有一个匹配的条目。
每行代表一个帐户,并且有九个冒号分隔的字段:
用户名:输入账号的登录名。 加密密码:帐户的加密密码。 上次更改:上次更改密码的日期。 最小天数:密码更改之间所需的最小天数。此人必须等待此天数才能更改其密码。如果此字段包含零,则他可以随意更改密码。 最大天数:密码更改之间所需的最大天数。通常,此字段包含非常大的数字。为“Mary”设置的值是99,999天,超过27年。 警报天数:密码到期日期之前显示提醒消息的天数。 重置锁定:密码过期后,系统将等待此天数(宽限期),然后才会禁用帐户。 帐户到期日期:帐户所有者将不能再登录的日期。如果此字段为空,则帐户永不过期。 保留字段:空白字段,以备将来使用。
空字段由冒号表示。
将“Last Change”字段作为日期获取
Unix时代始于1970年1月1日。“Last Change”字段的值为18,209。这是1970年1月1日帐户“Mary”密码更改后的天数。
使用此命令查看日期形式的“上次更改”值:
date -d "1970-01-01 18209 days"
日期显示为上次更改密码当天的午夜。在本例中,时间是2019年11月9日。
passwd命令
您可以使用passwd命令更改您的密码,如果您拥有sudo权限,还可以更改其他人的密码。
要更改密码,请使用不带参数的passwd命令:
passwd
您必须键入当前密码和新密码两次。
更改其他人的密码
要更改其他帐户的密码,您必须使用sudo,并提供该帐户的名称:
sudo passwd mary
您必须键入密码以验证您是否拥有超级用户权限。键入帐户的新密码,然后再次键入以确认。
强制更改密码
要强制某人在下次登录时更改其密码,请使用-e(过期)选项:
sudo passwd -e mary
系统会通知您密码到期日期已更改。
当帐户“Mary”的所有者下次登录时,她将不得不更改密码:
锁定帐户
要锁定帐户,请键入带有-l(锁定)选项的密码:
sudo passwd -l mary
您被告知密码到期日期已更改。
该帐户的所有者将无法再使用其密码登录到计算机。若要解锁该帐户,请使用-u(解锁)选项:
sudo passwd -u mary
再次通知您密码过期数据已更改:
同样,该帐户的所有者将不再能够使用她的密码登录计算机。但是,她仍然可以使用不需要密码的身份验证方法登录,例如SSH密钥。
如果你真的想把某人锁在电脑之外,你需要让你的账户过期。
相关:如何从Linux Shell创建和安装SSH密钥
CHAGE命令
不,chage中没有“n”。它代表“改变年龄”。您可以使用CHAGE命令设置整个帐户的到期日期。
让我们看看“Mary”帐户的当前设置,使用-l(列表)选项:
sudo chage -l mary
帐户的到期日期设置为“从不”。
要更改到期日期,请使用-E(到期)选项。如果您将其设置为零,这将被解释为“从Unix时代开始的零天”,即1970年1月1日。
键入以下内容:
sudo chage -E0 mary
重新检查帐户到期日期:
sudo chage -l mary
因为过期日期已经过去,所以无论所有者可能使用什么身份验证方法,此帐户现在都是真正锁定的。
要恢复帐户,请使用与数字参数-1相同的命令:
sudo chage -E -1 mary
键入以下内容以仔细检查:
sudo chage -l mary
帐户到期日期重置为“从不”。
在GNOME中更改帐户密码
Ubuntu和许多其他Linux发行版使用GNOME作为默认桌面环境。您可以使用“设置”对话框更改帐户的密码。
要执行此操作,请在系统菜单中单击设置图标。
在设置对话框中,单击左侧窗格中的“详细信息”,然后单击“用户”。
单击要更改密码的帐户;在本例中,我们将选择“Mary Quinn”。单击该帐户,然后单击“解锁”。
系统会提示您输入密码。在您通过身份验证之后,“Mary的”详细信息就可以编辑了。单击“Password”(密码)字段。
在“更改密码”对话框中,单击“立即设置密码”单选按钮。
在“New Password”和“Verify New Password”字段中键入新密码。
如果密码输入匹配,则“更改”按钮变为绿色;单击该按钮可保存新密码。
在其他桌面环境中,帐户工具将类似于GNOME中的工具。
保持安全,保持安全
60年来,密码一直是在线账户安全的重要组成部分,而且它不会很快消失。
这就是为什么明智地管理它们很重要。如果您了解Linux中的密码机制并采用最佳密码实践,您将确保系统的安全。