useradd
Vous pouvez contrôler la durée de validité du compte d'un utilisateur en utilisant l' --expiredate
option to useradd
.
extrait de la useradd
page de manuel
-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.
Ainsi, lors de la configuration du compte de l'utilisateur, vous pouvez spécifier une date +30 jours dans le futur à partir de maintenant, et l'ajouter à votre useradd
commande lors de la configuration de leurs comptes.
$ useradd -e 2013-07-30 someuser
chage
Vous pouvez également modifier la date d'un compte existant à l'aide de la chage
commande. Pour modifier la date d'expiration d'un compte, procédez comme suit:
$ chage -E 2013-08-30 someuser
calcul de la date dans +30 jours
Pour ce faire, il est en fait assez trivial d'utiliser la date
commande. Par exemple:
$ date -d "30 days"
Sun Jul 28 01:03:05 EDT 2013
Vous pouvez formater en utilisant les +FORMAT
options de la date
commande, ce qui finit par vous donner les éléments suivants:
$ date -d "30 days" +"%Y-%m-%d"
2013-05-28
Mettre tous ensemble
Donc, connaissant les pièces ci-dessus, voici une façon de les assembler. Tout d'abord, lorsque vous créez un compte, vous exécutez cette commande:
$ useradd -e `date -d "30 days" +"%Y-%m-%d"` someuser
Ensuite, lorsque vous souhaitez ajuster leurs dates d'expiration, vous exécutez régulièrement cette commande:
$ chage -E `date -d "30 days" +"%Y-%m-%d"` someuser
Spécification de périodes inférieures à 24h
Si vous souhaitez qu'un utilisateur ne soit actif que pendant quelques minutes, vous ne pouvez pas utiliser les options ci-dessus car elles nécessitent de spécifier une date. Dans ce cas, vous pouvez soit configurer un crontab
pour supprimer / verrouiller l'utilisateur créé après l'heure spécifiée (par exemple, 10 minutes), soit effectuer l'une des actions suivantes:
adduser someuser && sleep 600 && usermod --lock someuser
ou
$ adduser someuser
$ echo usermod --lock someuser | at now + 10 minutes
Les références