これが私ができることを望むものです:
ユーザーアカウントが作成された後はトンネリングが可能でなければなりませ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
引用する
答え2
adduser
Debian / Ubuntuを使用している場合とを使用する必要がありますusermod
。 Debian ベースのシステムでは、useradd
低レベルと見なされます (マンページによる):administrators should usually use adduser(8) instead
adduser
有効期限オプションがないため、これを使用してアカウントを作成できます。
usermod
有効期限を設定する-e
/オプションがあります。--expiredate
以下を使用してパラメータを計算できますdate
。date -d "30 days" "+%Y-%m-%d"
usermod --expiredate $(date -d "30 days" "+%Y-%m-%d") username
答え3
別の方法(オペレーティングシステムがアカウントの有効期限をサポートしていない場合、または何らかの理由でこの機能が機能しない場合):これから30日間実行されるようにcronジョブを設定して、このアカウントをロックします。
FreeBSD では、通常、暗号化パスワードを無効な値に設定してアカウントをロックします。pw lock X
このコマンドはアカウントをロックしますX
。