在 Linux 上关闭密码过期

sve*_*ven 3 linux debian root passwords ubuntu

我看到很多文档建议chage在 Debian 和 Ubuntu 上使用,但apt-get update && apt-get install chage没有安装软件包。例如,

root@ubuntu:~/Desktop# apt-get install chage
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package chage
Run Code Online (Sandbox Code Playgroud)

我发现我需要编辑/etc/shadow. 我究竟需要如何编辑root下面的行,以便我的 Linux 不会要求我在每次登录时更改密码?

root@ubuntu:~# cat /etc/shadow
root:$6$U.dnAQ2f$FV$/aF23Yn.sq1BYVjinlI9251nAarzqGKES18RxadV5bTakcfCNYAMljUwSaQZYV0r4MttHF0SFO7ebq3E1m/:0:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)

我按照deong建议编辑了根行

root:$6$U.dnAQ2f$FV$/aF23Yn.sq1BYVjinlI9251nAarzqGKES18RxadV5bTakcfCNYAMljUwSaQZYV0r4MttHF0SFO7ebq3E1m/:0:0:::::
Run Code Online (Sandbox Code Playgroud)

它仍然会在登录时要求输入密码。

我还遵循了http://www.lifelinux.com/setting-up-password-aging-in-linux/上的说明:

root@ubuntu:/home# chage -m 7 -M 60 -W 7 -I 7 root
root@ubuntu:/home# chage -m 0 -M 99999 -I -1 root
root@ubuntu:/home# change -l root
-bash: change: command not found
root@ubuntu:/home# chage -l root
Last password change                                    : password must be changed
Password expires                                        : password must be changed
Password inactive                                       : password must be changed
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
Run Code Online (Sandbox Code Playgroud)

我需要编辑什么才能删除password must be changed?我也做了chage -I -1 -m 0 -M 99999 -E -1 root,但没有帮助。

小智 5

$ man 5 shadow
Run Code Online (Sandbox Code Playgroud)

描述该文件的格式。从那里引用,第五个字段是最大密码年龄。

密码最长期限 密码最长期限是用户必须更改密码的天数。

在此天数过后,密码可能仍然有效。应该要求用户在下次登录时更改她的密码。

空字段表示没有密码最长期限、密码警告期和密码不活动期(见下文)。

如果最长密码期限低于最短密码期限,则用户无法更改其密码。

在您的情况下,您已经触发了触发器,因此您还需要摆脱提示,以便在下次登录时立即更改密码。再次查阅手册页...

上次更改密码的日期上次更改密码的日期,表示为自 1970 年 1 月 1 日以来的天数。

0 有一个特殊的含义,就是用户下次登录系统时需要修改密码。

空字段表示禁用密码时效功能。

因此,您还应该从第三个字段中删除零。一旦你禁用了它,就不需要第四个了。

所以你应该能够完全删除第五个字段来实现你想要的。如

root:$6$U.dnAQ2f$FV$/aF23Yn.sq1BYVjinlI9251nAarzqGKES18RxadV5bTakcfCNYAMljUwSaQZYV0r4MttHF0SFO7ebq3E1m/:::::::
Run Code Online (Sandbox Code Playgroud)

也就是说,我通常建议不要直接编辑这样的文件,除非您 100% 确定您知道自己在做什么。

编辑:另外,似乎 chage 是 Ubuntu 上 passwd 包的一部分,我假设你已经安装了它。