Answers:
您可以使用的--expiredate
选项来控制用户帐户的有效期限useradd
。
useradd
手册页摘录
-e, --expiredate EXPIRE_DATE
The date on which the user account will be disabled. The date is
specified in the format YYYY-MM-DD.
If not specified, useradd will use the default expiry date specified
by the EXPIRE variable in /etc/default/useradd, or an empty string
(no expiry) by default.
因此,在设置用户帐户时,您可以指定从现在起+30天的日期,并useradd
在设置用户帐户时将其添加到命令中。
$ useradd -e 2013-07-30 someuser
您还可以使用chage
命令更改现有帐户日期。要更改帐户的到期日期,请执行以下操作:
$ chage -E 2013-08-30 someuser
使用该date
命令实际上很简单。例如:
$ date -d "30 days"
Sun Jul 28 01:03:05 EDT 2013
您可以使用命令的+FORMAT
选项进行格式化date
,最终为您提供以下内容:
$ date -d "30 days" +"%Y-%m-%d"
2013-05-28
因此,了解以上内容后,这是将其组合在一起的一种方法。首先,在创建帐户时,请运行以下命令:
$ useradd -e `date -d "30 days" +"%Y-%m-%d"` someuser
然后,当您要调整其到期日期时,可以定期运行以下命令:
$ chage -E `date -d "30 days" +"%Y-%m-%d"` someuser
如果您只希望用户处于活动状态几分钟,则不能使用上述选项,因为他们需要指定日期。在这种情况下,您可以设置a crontab
在指定的时间(例如10分钟)后删除/锁定创建的用户,也可以执行以下操作之一:
adduser someuser && sleep 600 && usermod --lock someuser
要么
$ adduser someuser
$ echo usermod --lock someuser | at now + 10 minutes
如果您使用的是Debian / Ubuntu,则应使用adduser
和usermod
。在基于Debian的系统上useradd
被认为是低级的(根据手册页):administrators should usually use adduser(8) instead
adduser
没有到期选项,因此您只需要使用它来创建帐户。
usermod
具有-e
/ --expiredate
选项以设置到期日期。
你计算参数date
有:date -d "30 days" "+%Y-%m-%d"
获得:
usermod --expiredate $(date -d "30 days" "+%Y-%m-%d") username
另一种方法(如果您的操作系统不支持帐户到期或该功能由于任何原因而无法使用):设置一个cron作业,从现在开始运行30天,它将锁定该帐户。
通常,通过将其加密密码设置为无效值来锁定帐户;在FreeBSD上,pw lock X
命令将锁定该帐户X
。