useradd
Mit der --expiredate
Option to können Sie steuern, wie lange ein Benutzerkonto gültig ist useradd
.
Auszug aus der useradd
Manpage
-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.
Wenn Sie also das Konto des Benutzers einrichten, können Sie ein Datum von +30 Tagen in der Zukunft angeben und dies zu Ihrem useradd
Befehl hinzufügen, wenn Sie dessen Konten einrichten.
$ useradd -e 2013-07-30 someuser
chage
Sie können auch ein vorhandenes Kontodatum mit dem chage
Befehl ändern . So ändern Sie das Ablaufdatum eines Kontos:
$ chage -E 2013-08-30 someuser
Berechnung des Datums in 30 Tagen
Dies zu tun ist mit dem date
Befehl eigentlich ziemlich trivial . Beispielsweise:
$ date -d "30 days"
Sun Jul 28 01:03:05 EDT 2013
Sie können mit den +FORMAT
Optionen des date
Befehls formatieren, wodurch Sie Folgendes erhalten:
$ date -d "30 days" +"%Y-%m-%d"
2013-05-28
Alles zusammen
Wenn Sie die obigen Teile kennen, haben Sie hier eine Möglichkeit, sie zusammenzustellen. Wenn Sie ein Konto erstellen, führen Sie zunächst den folgenden Befehl aus:
$ useradd -e `date -d "30 days" +"%Y-%m-%d"` someuser
Wenn Sie dann das Ablaufdatum anpassen möchten, führen Sie regelmäßig den folgenden Befehl aus:
$ chage -E `date -d "30 days" +"%Y-%m-%d"` someuser
Angabe von Zeiträumen von weniger als 24h
Wenn ein Benutzer nur einige Minuten aktiv sein soll, können Sie die obigen Optionen nicht verwenden, da für sie ein Datum angegeben werden muss. In diesem Fall können Sie entweder a einrichten crontab
, um den erstellten Benutzer nach der angegebenen Zeit (z. B. 10 Minuten) zu entfernen / zu sperren, oder Sie können eine der folgenden Aktionen ausführen:
adduser someuser && sleep 600 && usermod --lock someuser
oder
$ adduser someuser
$ echo usermod --lock someuser | at now + 10 minutes
Verweise
Wenn Sie unter Debian / Ubuntu arbeiten, sollten Sie
adduser
und verwendenusermod
. Auf Debian-basierten Systemenuseradd
wird als niedrig eingestuft und (gemäß den Manpages):administrators should usually use adduser(8) instead
adduser
Hat eine Option ohne Ablaufdatum, so dass Sie es nur zum Erstellen des Kontos verwenden.usermod
Mit der Option-e
/ können Sie--expiredate
das Ablaufdatum festlegen.Sie berechnen den Parameter bis
date
mit:date -d "30 days" "+%Y-%m-%d"
um:quelle
Eine andere Möglichkeit (wenn Ihr Betriebssystem das Ablaufen des Kontos nicht unterstützt oder diese Funktion aus irgendeinem Grund nicht funktioniert): Richten Sie einen Cron-Job ein, der in 30 Tagen ausgeführt wird und dieses Konto sperrt.
Normalerweise wird das Konto gesperrt, indem das verschlüsselte Kennwort auf einen ungültigen Wert gesetzt wird. Unter FreeBSD
pw lock X
sperrt der Befehl das KontoX
.quelle