useradd
Вы можете контролировать срок действия учетной записи пользователя с помощью --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
команды. Чтобы изменить срок действия аккаунта, вы должны сделать следующее:
$ chage -E 2013-08-30 someuser
расчет даты +30 дней
Сделать это на самом деле довольно тривиально, используя 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
Задание периодов времени менее 24 часов
Если вы хотите, чтобы пользователь был активным только в течение нескольких минут, вы не можете использовать описанные выше параметры, поскольку они требуют указания даты. В этом случае вы можете либо настроить crontab
удаление / блокировку созданного пользователя по истечении указанного времени (например, 10 минут), либо выполнить одно из следующих действий:
adduser someuser && sleep 600 && usermod --lock someuser
или
$ adduser someuser
$ echo usermod --lock someuser | at now + 10 minutes
Ссылки
Если вы используете Debian / Ubuntu, вы должны использовать
adduser
иusermod
. В системах на основе Debianuseradd
считается низким уровнем и (согласно man-страницам):administrators should usually use adduser(8) instead
adduser
не имеет срока действия, так что вы просто используете его для создания учетной записи.usermod
имеет параметр-e
/,--expiredate
чтобы установить срок действия.Вы рассчитываете параметр для
date
с:date -d "30 days" "+%Y-%m-%d"
чтобы получить:источник
Другой способ (если ваша ОС не поддерживает истечение срока действия учетной записи или эта функция по какой-либо причине не работает): настройте задание cron на 30 дней, которое заблокирует эту учетную запись.
Обычно учетная запись блокируется, если для ее зашифрованного пароля установлено недопустимое значение; во FreeBSD
pw lock X
команда заблокирует учетную записьX
.источник