useradd
Puede controlar cuánto tiempo es válida la cuenta de un usuario mediante el uso de la --expiredateopción useradd.
extracto de la useraddpágina man
-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.
Entonces, al configurar la cuenta del usuario, puede especificar una fecha +30 días en el futuro a partir de ahora, y agregarla a su useraddcomando al configurar sus cuentas.
$ useradd -e 2013-07-30 someuser
chage
También puede cambiar la fecha de una cuenta existente con el chagecomando. Para cambiar la fecha de vencimiento de una cuenta, debe hacer lo siguiente:
$ chage -E 2013-08-30 someuser
calcular la fecha +30 días a partir de ahora
Hacer esto es bastante trivial usando el datecomando. Por ejemplo:
$ date -d "30 days"
Sun Jul 28 01:03:05 EDT 2013
Puede formatear usando las +FORMATopciones del datecomando, que termina dándole lo siguiente:
$ date -d "30 days" +"%Y-%m-%d"
2013-05-28
Poniendolo todo junto
Entonces, conociendo las piezas anteriores, aquí hay una manera de armarlo. Primero, al crear una cuenta, ejecutarías este comando:
$ useradd -e `date -d "30 days" +"%Y-%m-%d"` someuser
Luego, cuando desee ajustar sus fechas de vencimiento, ejecute periódicamente este comando:
$ chage -E `date -d "30 days" +"%Y-%m-%d"` someuser
Especificando períodos de tiempo de menos de 24h
Si desea que un usuario solo esté activo durante algunos minutos, no puede usar las opciones anteriores, ya que requieren especificar una fecha. En ese caso, puede configurar a crontabpara eliminar / bloquear el usuario creado después del tiempo especificado (por ejemplo, 10 minutos), o puede hacer una de:
adduser someuser && sleep 600 && usermod --lock someuser
o
$ adduser someuser
$ echo usermod --lock someuser | at now + 10 minutes
Referencias