これが私ができることを望むものです:
ユーザーアカウントが作成された後はトンネリングが可能でなければなりませ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