自動的に期限切れになるユーザーアカウントを作成するにはどうすればよいですか?

自動的に期限切れになるユーザーアカウントを作成するにはどうすればよいですか?

これが私ができることを望むものです:

ユーザーアカウントが作成された後はトンネリングが可能でなければなりませsshんが、rootユーザーがカウントダウンをリセットしない限り、そのアカウントは30日後に自動的に削除されます。

これをどのように自動化できますか?約15人のユーザーを処理する必要があります。

ベストアンサー1

ユーザーが追加されました

--expiredateオプションを使用して、ユーザーアカウントの有効期間を制御できますuseradd

useraddマニュアルページから抜粋

-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.

これにより、ユーザーアカウントを設定するときから30日後の日付を指定し、ユーザーuseraddアカウントを設定するときにコマンドに追加できます。

$ useradd -e 2013-07-30 someuser

チャグ

このコマンドを使用して既存のアカウントの日付を変更することもできますchage。アカウントの有効期限を変更するには、次の手順を実行する必要があります。

$ chage -E 2013-08-30 someuser

これから30日後の日付を計算してください。

実際にコマンドを使用してこれを行うのは非常に簡単ですdate。たとえば、

$ date -d "30 days"
Sun Jul 28 01:03:05 EDT 2013

+FORMATコマンドのオプションを使用してフォーマットすることができ、date最終的には以下を提供します。

$ date -d "30 days" +"%Y-%m-%d"
2013-05-28

それらを一つにまとめる

さて、上記を理解したので、これを一つにまとめる一つの方法があります。まず、アカウントを作成するときに次のコマンドを実行します。

$ useradd -e `date -d "30 days" +"%Y-%m-%d"` someuser

その後、定期的に有効期限を調整したい場合は、次のコマンドを実行できます。

$ chage -E `date -d "30 days" +"%Y-%m-%d"` someuser

24時間未満の期間を指定してください。

ユーザーが数分間アクティブになるには日付指定が必要なため、上記のオプションは使用できません。この場合、crontab作成されたユーザーを指定した時間(10分など)後に削除/ロックするように設定するか、次のいずれかを実行できます。

adduser someuser && sleep 600 && usermod --lock someuser

または

$ adduser someuser
$ echo usermod --lock someuser | at now + 10 minutes

引用する

おすすめ記事