侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux passwd命令详解:如何修改、删除、锁定和解锁用户密码以及设置密码过期时间(附实例教程和注意事项)

Linux passwd命令介绍

passwd命令是password的缩写,它用于修改用户账户的密码。一个普通用户只能修改自己的密码,而超级用户(root)可以修改任何账户的密码。passwd命令还可以修改账户或关联密码的有效期。这个任务是通过调用Linux-PAM和libuser API来实现的。passwd命令在Linux中是非常重要的,因为它涉及到用户的身份验证和安全。密码是加密存储在/etc/shadow文件中的,而用户的其他信息则存储在/etc/passwd文件中。passwd命令可以操作这两个文件,以及其他一些文件,如/etc/group和/etc/gshadow。

Linux passwd命令适用的Linux版本

passwd命令是一个通用的Linux命令,它适用于几乎所有的Linux发行版,如Ubuntu, Debian, Fedora, CentOS, Red Hat, SUSE等。不同的Linux发行版可能会有一些细微的差异,比如选项的名称或用法,但是基本的功能和语法都是一样的。如果你遇到了某个Linux发行版不支持的选项或功能,你可以查看官方的文档或手册页(man passwd)来获取更多的信息。如果你想要安装或卸载passwd命令,你可以使用你的Linux发行版的包管理工具,如apt, yum, dnf, zypper等。例如,如果你使用的是CentOS 7,你可以使用以下命令来安装passwd命令:

[linux@bashcommandnotfound.cn ~]$ sudo yum install passwd

如果你使用的是CentOS 8,你可以使用以下命令来安装passwd命令:

[linux@bashcommandnotfound.cn ~]$ sudo dnf install passwd

Linux passwd命令的基本语法

passwd命令的基本语法如下:

passwd [选项] [用户名]

其中,选项是可选的,用于指定一些额外的功能或设置。用户名是要修改密码的用户账户的名称,如果省略,则默认为当前登录的用户。passwd命令会提示你输入旧密码(如果有的话)和新密码,然后再次输入新密码进行确认。新密码必须符合一些安全要求,比如长度,复杂度,不同于旧密码等。如果你输入的新密码不合法或不一致,passwd命令会给出相应的错误信息,并让你重新输入。

Linux passwd命令的常用选项说明

passwd命令有很多选项,可以用于修改密码的各种属性和行为。以下是一些常用的选项的说明:

选项说明
-d删除用户的密码,使账户无密码
-e使用户的密码过期,强制用户在下次登录时修改密码
-i设置用户的密码过期后的宽限期,即用户可以在密码过期后多少天内登录并修改密码
-k只有在旧密码为空时才修改密码
-l锁定用户的密码,使账户无法使用密码登录
-n设置用户的密码最小使用期限,即用户在修改密码后多少天内不能再次修改密码
-q安静模式,不输出任何信息
-r删除用户的密码和过期信息,使账户只能使用其他认证方式登录,如SSH公钥
-S显示用户的密码状态信息
-u解锁用户的密码,恢复账户的密码登录功能
-w设置用户的密码最大使用期限,即用户在多少天后必须修改密码
-x设置用户的密码最大使用期限,与-w选项相同

Linux passwd命令的实例

以下是一些passwd命令的实例,展示了它的常见用法和效果。

修改自己的密码

如果你想要修改自己的密码,你只需要输入passwd命令,然后按照提示输入旧密码和新密码。例如:

[linux@bashcommandnotfound.cn ~]$ passwd
Changing password for user linux.
(current) UNIX password: 
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

修改其他用户的密码

如果你是超级用户(root),你可以修改其他用户的密码,你只需要在passwd命令后面加上用户名,然后输入新密码。例如,如果你想要修改用户alice的密码,你可以输入:

[linux@bashcommandnotfound.cn ~]$ sudo passwd alice
Changing password for user alice.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

删除用户的密码

如果你想要删除用户的密码,使账户无密码,你可以使用-d选项。这样,用户就不需要输入密码就可以登录,但是这样做会降低安全性,所以不建议这样做。例如,如果你想要删除用户bob的密码,你可以输入:

[linux@bashcommandnotfound.cn ~]$ sudo passwd -d bob
Removing password for user bob.
passwd: Success

锁定和解锁用户的密码

如果你想要锁定用户的密码,使账户无法使用密码登录,你可以使用-l选项。这样,用户就只能使用其他认证方式登录,比如SSH公钥。这样做可以提高安全性,或者用于暂时禁用某个账户。例如,如果你想要锁定用户charlie的密码,你可以输入:

[linux@bashcommandnotfound.cn ~]$ sudo passwd -l charlie
Locking password for user charlie.
passwd: Success

如果你想要解锁用户的密码,恢复账户的密码登录功能,你可以使用-u选项。这样,用户就可以再次使用密码登录。这样做可以用于恢复某个账户的正常使用。例如,如果你想要解锁用户charlie的密码,你可以输入:

[linux@bashcommandnotfound.cn ~]$ sudo passwd -u charlie
Unlocking password for user charlie.
passwd: Success

显示用户的密码状态信息

如果你想要显示用户的密码状态信息,你可以使用-S选项。这样,你就可以看到用户的密码是否设置,是否过期,是否锁定,以及其他一些属性。例如,如果你想要显示用户david的密码状态信息,你可以输入:

[linux@bashcommandnotfound.cn ~]$ sudo passwd -S david
david PS 2021-11-27 0 90 7 -1 (Password set, SHA512 crypt.)

输出的信息的含义如下:

字段含义
david用户名
PS密码状态,P表示密码已设置,L表示密码已锁定,NP表示无密码
2021-11-27密码最后一次修改的日期
0密码最小使用期限,单位是天
90密码最大使用期限,单位是天
7密码过期前的警告期,单位是天
-1密码过期后的宽限期,单位是天
(Password set, SHA512 crypt.)附加的说明信息

passwd设置用户的密码过期时间

如果你想要设置用户的密码过期时间,你可以使用-x选项,后面跟上一个数字,表示密码的最大使用期限,单位是天。这样,用户在这个期限后就必须修改密码,否则无法登录。这样做可以增加安全性,或者用于临时

[linux@bashcommandnotfound.cn ~]$ sudo passwd -x 30 用户名

Linux passwd命令的注意事项

以下是一些使用passwd命令时需要注意的事项:

  • 如果你输入的新密码太简单或太常见,passwd命令可能会拒绝你的修改,并给出相应的警告信息,比如BAD PASSWORD: The password is shorter than 8 characters。这是为了提高密码的安全性,防止被破解。你可以尝试使用一些复杂的密码,比如包含大小写字母,数字,符号等。
  • 如果你输入的新密码和旧密码相似,passwd命令也可能会拒绝你的修改,并给出相应的警告信息,比如BAD PASSWORD: is too similar to the old one。这是为了防止你使用一些变化不大的密码,比如只改变一个字符或顺序等。你可以尝试使用一些完全不同的密码,比如使用不同的主题或风格等。
  • 如果你输入的新密码和用户名相似,passwd命令也可能会拒绝你的修改,并给出相应的警告信息,比如BAD PASSWORD: is too similar to the username。这是为了防止你使用一些容易被猜测的密码,比如和用户名相同或包含用户名等。你可以尝试使用一些和用户名无关的密码,比如使用随机的字符或单词等。
  • 如果你输入的新密码和字典中的单词相似,passwd命令也可能会拒绝你的修改,并给出相应的警告信息,比如BAD PASSWORD: it is based on a dictionary word。这是为了防止你使用一些容易被破解的密码,比如和字典中的单词相同或包含单词等。你可以尝试使用一些非字典的密码,比如使用拼音,缩写,错别字,混合语言等。
  • 如果你遇到了bash: passwd: command not found的错误信息,说明你的系统中没有安装passwd命令,或者你的PATH环境变量没有包含passwd命令的路径。你可以使用which passwd命令来查看passwd命令的位置,如果没有输出,说明你没有安装passwd命令,你可以使用你的Linux发行版的包管理工具来安装它,如apt, yum, dnf, zypper等。如果有输出,说明你的PATH环境变量没有包含passwd命令的路径,你可以使用export PATH=$PATH:passwd命令的路径来添加它,或者直接使用passwd命令的绝对路径来执行它。
0

评论区