我看到很多文档建议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
我发现我需要编辑/etc/shadow
。我到底需要如何编辑root
下面的行,以便我的 Linux 不会要求我在每次登录时更改密码?
root@ubuntu:~# cat /etc/shadow
root:$6$U.dnAQ2f$FV$/aF23Yn.sq1BYVjinlI9251nAarzqGKES18RxadV5bTakcfCNYAMljUwSaQZYV0r4MttHF0SFO7ebq3E1m/:0:0:99999:7:::
deong
我按照建议编辑了根行
root:$6$U.dnAQ2f$FV$/aF23Yn.sq1BYVjinlI9251nAarzqGKES18RxadV5bTakcfCNYAMljUwSaQZYV0r4MttHF0SFO7ebq3E1m/:0:0:::::
登录时仍要求输入密码。
我也按照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
我需要编辑什么才能删除password must be changed
?我也这样做了chage -I -1 -m 0 -M 99999 -E -1 root
,但没有帮助。
答案1
$ man 5 shadow
描述了该文件的格式。从那里引用,第五个字段是密码的最大使用期限。
密码最长使用期限 密码最长使用期限是指用户必须更改密码的天数。
经过此天数后,密码可能仍然有效。下次登录时应要求用户更改密码。
空字段表示没有最长密码使用期限、没有密码警告期、也没有密码不活动期(见下文)。
如果密码最长使用期限低于密码最短使用期限,则用户无法更改密码。
就您而言,您已经触发了触发器,因此您还需要取消在下次登录时立即更改密码的提示。再次查阅手册页...
上次更改密码的日期 上次更改密码的日期,以自 1970 年 1 月 1 日以来的天数表示。
值 0 具有特殊含义,即用户下次登录系统时应更改密码。
空字段表示密码老化功能已被禁用。
因此您还应该从第三个字段中删除零。一旦您禁用了该功能,就不需要第四个字段了。
因此,您应该能够完全删除第五个字段以实现您想要的效果。例如
root:$6$U.dnAQ2f$FV$/aF23Yn.sq1BYVjinlI9251nAarzqGKES18RxadV5bTakcfCNYAMljUwSaQZYV0r4MttHF0SFO7ebq3E1m/:::::::
话虽如此,我一般建议不要直接编辑这样的文件,除非你 100% 确定你知道自己在做什么。
编辑:此外,看起来 chage 是 Ubuntu 上 passwd 包的一部分,我假设您已经安装了它。