在OpenBSD 5.6上,我需要使用默认密码configuration多个用户帐户。 我希望用户在第一次SSHlogin时被迫更改默认密码。
在CentOS和Debian上,我可以使用chage -d 0 $username
来做到这一点。
从login.conf手册中可以看出,我应该可以在OpenBSD上完成同样的事情,例如:
usermod -f 1 $username
或者 usermod -f "Jan 1 2015" $username
设置这种方式会提示userinfo $username
的适当更改,但通过SSHlogin为$ username并不会实际执行密码更改 – 它会非常愉快地打开shell,忘记密码已被标记为不活动。
2000年的一些post通过编写一个包装loginshell来强制更改密码。 也就是说,考虑到在usermod
和chpass
的明显脚手架,看起来这是内置的,但是没有像Linux等同的广泛文档那样logging。
BSD专业人员可以通过传统的方法来了解一些情况吗?
根据login.conf (5)
,过期(又名“死”)密码的默认宽限期为0.除非在/etc/login.conf
设置了这个值,否则用户不能login更改密码系统date大于/etc/master.passwd
用户密码input的第6个字段 – 请参阅passwd (5)
。
为了解决这个问题,你需要指定一个date格式的date,这个date是在你select的宽限期(例如2周)之内的时间,你也将在/etc/login.conf
configuration。 要手动select昨天的密码过期时间,我们可以使用:
# date -d yesterday +%s 1463597700
然后使用vipw
将该值插入/etc/master.passwd
的字段#6。 相关的行会看起来像这样:
user:$2b$08$01234567890abcdef:1000:1000::1463597700:0:user:/home/user:/bin/ksh
像你指定的那样运行usermod( usermod -f "May 17 2016" user
)基本上会做同样的事情,但是在这两种情况下,/ /etc/login.conf
也必须通过将以下内容添加到default:\
或相关部分您的用户类别:
:password-dead=2w:\ :password-warn=2w:
第一行允许用户更改密码两周的宽限期; 第二行将发出用户密码计划过期的警告。 如果过期,您的用户将看到如下内容:
WARNING: Your password has expired. You must change your password now and login again! Changing local password for user. Old password: New password: Retype new password: Connection to openbsd-server closed.
您还可以configuration:passwordtime=7776000:
在/etc/login.conf
中每90天强制更改一次密码。 请注意,如果您需要对用户的密码复杂度进行额外的检查,例如禁止重复使用密码,则应该从软件包或其他密码检查程序安装并configurationpasswordqc
。