useradd
Puede controlar cuánto tiempo es válida la cuenta de un usuario mediante el uso de la --expiredate
opción useradd
.
extracto de la useradd
pá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 useradd
comando al configurar sus cuentas.
$ useradd -e 2013-07-30 someuser
chage
También puede cambiar la fecha de una cuenta existente con el chage
comando. 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 date
comando. Por ejemplo:
$ date -d "30 days"
Sun Jul 28 01:03:05 EDT 2013
Puede formatear usando las +FORMAT
opciones del date
comando, 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 crontab
para 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