useradd
Możesz kontrolować, jak długo konto użytkownika jest ważne, korzystając z --expiredate
opcji do useradd
.
fragment useradd
strony podręcznika 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.
Tak więc podczas konfigurowania konta użytkownika możesz określić datę +30 dni w przyszłości i dodać ją do swojego useradd
polecenia podczas konfigurowania ich kont.
$ useradd -e 2013-07-30 someuser
chage
Możesz także zmienić datę istniejącego konta za pomocą chage
polecenia. Aby zmienić datę wygaśnięcia konta, wykonaj następujące czynności:
$ chage -E 2013-08-30 someuser
obliczanie daty +30 dni od teraz
Wykonanie tego jest właściwie dość trywialne przy użyciu date
polecenia. Na przykład:
$ date -d "30 days"
Sun Jul 28 01:03:05 EDT 2013
Możesz sformatować za pomocą +FORMAT
opcji date
polecenia, co w końcu daje następujące możliwości:
$ date -d "30 days" +"%Y-%m-%d"
2013-05-28
Kładąc wszystko razem
Znając powyższe elementy, oto jeden ze sposobów na złożenie ich w całość. Najpierw podczas tworzenia konta uruchom następujące polecenie:
$ useradd -e `date -d "30 days" +"%Y-%m-%d"` someuser
Następnie, jeśli chcesz dostosować daty wygaśnięcia, okresowo uruchamiaj to polecenie:
$ chage -E `date -d "30 days" +"%Y-%m-%d"` someuser
Określanie okresów krótszych niż 24 godziny
Jeśli chcesz, aby użytkownik był aktywny tylko przez kilka minut, nie możesz użyć powyższych opcji, ponieważ wymagają one podania daty. W takim przypadku możesz skonfigurować opcję crontab
usuwania / blokowania utworzonego użytkownika po określonym czasie (na przykład 10 minut) lub możesz wykonać jedną z następujących czynności:
adduser someuser && sleep 600 && usermod --lock someuser
lub
$ adduser someuser
$ echo usermod --lock someuser | at now + 10 minutes
Bibliografia
Jeśli korzystasz z Debiana / Ubuntu, powinieneś użyć
adduser
iusermod
. W systemach opartych na Debianieuseradd
jest uważany za niski poziom i (według stron podręcznika):administrators should usually use adduser(8) instead
adduser
ma opcję bez wygaśnięcia, więc po prostu użyj jej do utworzenia konta.usermod
ma opcję-e
/--expiredate
, aby ustawić datę ważności.Obliczasz parametr za
date
pomocą:date -d "30 days" "+%Y-%m-%d"
aby uzyskać:źródło
Innym sposobem (jeśli Twój system operacyjny nie obsługuje wygaśnięcia konta lub ta funkcja nie działa z jakiegokolwiek powodu): skonfiguruj zadanie cron do uruchomienia za 30 dni, które zablokuje to konto.
Zwykle konto jest blokowane przez ustawienie jego zaszyfrowanego hasła na niepoprawną wartość; na FreeBSD
pw lock X
polecenie zablokuje kontoX
.źródło