Linux passwd命令–更改用户密码

时间:2020-02-23 14:39:55  来源:igfitidea点击:

介绍

Linux passwd命令更改用户密码。
用户只能更改自己的密码,但root /超级用户可以更改任何用户的密码。

让我们看一下Linux手册页,以了解此命令的用法。
通过键入以下命令来完成此操作:

$man passwd

Linux中的密码

在基于UNIX的系统中存储密码的传统方法包括将信息存储在/etc/passwd文件中。

但是,该文件已被许多程序访问,因此存在安全风险。

如今,"/etc/passwd"文件仅包含登录和身份验证所需的基本用户信息。

密码的实际加密版本存储在单独的文件-/etc/shadow中。
该文件只能由root用户访问。

-/etc/passwd文件如下所示:passwd文件内容文件的每一行都包含有关某个程序或者用户的一般用户信息。
这些字段由分隔。

这些字段如下:用户名(最多8个字符)

  • x表示密码,密码以加密格式存储在/etc/shadow文件中。

  • 数字用户ID。

  • 数字组ID。

  • 完整的用户名。

  • 主目录的路径。

  • 首选shell的路径。
    ("/bin/bash")

  • /etc/shadow文件如下所示(需要root访问权限):shadow文件内容此文件包含帐户和密码信息。
    这些字段之间用分隔。
    与用户帐户信息相对应的字段如下:用户名(最多8个字符)

  • 第二个字段包含加密的密码,并分为多个子字段(用$字符分隔)。
    第一个子字段表示所使用的加密算法:
    第二个子字段包含加密过程中使用的盐值。
    第三个子字段包含加密的密码。
    更改密码以来的天数。

  • 可以更改密码的天数(0表示可以随时更改)。

  • 必须更改密码的天数。

  • 密码到期前的天数,必须警告用户。

  • 密码过期后帐户被禁用的天数。

  • 自1970年1月1日以来,该帐户一直无效或者被禁用的天数。

  • 保留字段以获取更多信息。

Linux password命令语法

$- MD5
a$- Blowfish
y$- Blowfish(v2)
$- SHA-256
$- SHA-512

1.更改当前用户的密码

输入Passwd Comand

键入passwd会提示用户首先输入当前密码。
用户只有一次输入正确密码的机会。
如果输入的密码不正确或者当时无法更改,则终端显示错误并退出.Passwd身份验证错误

输入密码后,它将被加密并与存储的加密密码匹配。
然后,提示用户两次输入新密码。
两个密码都必须足够复杂并且彼此匹配,才能被接受为有效密码。

输入新密码

如果新密码与旧密码非常相似,则会显示错误。

一旦满足每个条件,就可以成功更改当前用户的密码。

2.更改其他用户的密码

以下命令用于更改其他用户的密码:

$passwd [options]... [LOGIN]...

由于需要root用户访问权限才能更改其他用户的密码,因此终端会提示用户输入密码。
更改其他用户密码的过程与当前用户相同。

Linux passwd命令选项

  • -d或者–delete选项删除用户的密码。
    它将用户帐户设置为无密码。

  • -e或者–expire选项会立即使用户密码失效。
    这可以迫使他们更改密码。

  • -h或者–help选项显示帮助消息并退出。

  • -l或者–lock选项通过在密码开头添加"!"来锁定命名帐户的密码。
    这样可以防止将加密的哈希与存储的哈希成功匹配。
    密码锁定的用户无法更改其密码。

  • -i [INACTIVE_DAYS]或者–inactive [INACTIVE_DAYS]选项将在密码过期数天后禁用帐户。

密码无效选项

  • -n [MIN_DAYS]或者–mindays [MIN_DAYS]选项设置两次密码更改之间的最少天数。
    值为0表示可以随时更改密码。

Passwd Mindays选项示例

  • -r [REPOSITORY]或者–repository [REPOSITORY]选项设置特定存储库的密码。

  • -S或者–status显示帐户状态信息。

passwd状态选项示例

如上所示,输出分为多个字段。
第一个字段显示当前用户的名称。

第二个字段显示用户是否具有可用密码(P),锁定密码(L)或者无密码(NP)。

第三个字段显示密码更改的最后日期。
接下来的几个字段分别显示密码的最小使用期限,最大使用期限,警告期限和不活动期限。
passwd warndays选项示例

  • -a或者–all选项显示所有用户的状态。
    它只能与-S一起使用。