阅读手册页后,我无法找到其作用的解释(tack e选项)
usermod -L -e 1 用户名
-e 1
这是否意味着 linux 纪元 1970 年 1 月 1 日之后的某一天?既然没有任何地方记录,怎么会有人知道这一点?
答案1
你是对的。它的价值以天为单位。
来自usermod(8)
手册页:
-e, --expiredate EXPIRE_DATE
用户帐户将被禁用的日期。日期以格式指定年-月-日。
但还有更多信息shadow(5)
手册页:
帐户到期日期
帐户的到期日期,以帐户数量表示自 1970 年 1 月 1 日起的天数。
请注意,帐户过期与密码过期不同。如果帐户过期,则不允许用户登录。如果密码过期,用户将无法使用其密码登录。
空字段意味着该帐户永远不会过期。
不应使用值 0,因为它会被解释为没有到期日的帐户或在 1970 年 1 月 1 日到期。
您可以确认此读数源usermod.c
代码:
case 'e':
if ('\0' != *optarg) {
user_newexpire = strtoday (optarg);
答案2
看来你的猜测是正确的。
要验证它,您必须阅读源代码:
- 在我的 Debian 机器上,
dlocate
说这usermod
是软件包的一部分passwd
。 - 该包中的文件
README
表示可以在以下位置浏览 SVN 存储库http://svn.debian.org/wsvn/pkg-shadow/upstream - 在该存储库中,src/usermod.c调用来处理和 的
strtoday
选项值-e
strtoday
是在libmisc/strtoday.c,有这样的评论:
/* 如果提供了一个数值,则这已经是一个数字了 * 自 EPOCH 以来的天数。 */