1時間ごとのLinuxユーザーパスワードの自動変更

1時間ごとのLinuxユーザーパスワードの自動変更

1時間ごとにLinuxユーザーのパスワードを変更したいと思います。 cronを介して呼び出されるbashスクリプトを使用する方法、またはLinux cronjobを介して直接コマンドを使用する方法についてのアイデアを持っている人はいますか?

答え1

@SINA GHの答えを拡張しますが、直接的な答えのために単純化します。

mkpasswdが利用可能な場合:

echo '0 * * * * root mkpasswd -l 50 cloud-user' >> /etc/crontab

mkpasswdが利用できない場合:

echo '0 * * * * root < /dev/urandom tr -dc A-Z-a-z-0-9 | head -c50 | passwd --stdin cloud-user' >> /etc/crontab

これにより、個々のユーザーのパスワードが毎時ランダムに生成された文字列に自動的に変更されるように、crontabに行が追加されます。

それを破壊する:

echo '...' >> /etc/crontab

スケジュールに従って実行するために新しい行/項目を追加する

0 * * * * root

平日毎時間0分でrootで実行

< /dev/urandom tr -dc A-Z-a-z-0-9

ランダムデータ生成と文字フィルタリング

| head -c50

stdinから最初の50文字(任意の文字)を取得します。

| passwd --stdin cloud-user

クラウドユーザーのパスワードをstdinから渡されたパスワードに設定します(最初の50文字のランダム文字)。

答え2

任意の文字列で毎日ユーザーのパスワードを変更します。
使用法:autopass.sh username

取付ける:

次のコードautopass.sh/root/

#!/bin/bash
set -e
MyUser=$1
RandPass=$(< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c12)
set +e
echo -e "$RandPass\n$RandPass\n" | passwd $MyUser &> /dev/null && echo "$(date) --> Passwd: $RandPass" >> /root/${MyUser}-pass.txt || echo "$(date) --> Error: failed to change pass" >> /root/${MyUser}-pass.txt
exit 0

特権の実行: chmod u+x autopass.sh
crontab 編集:crontab -eファイルに追加:0 3 * * * /root/autopass.sh username
毎日スクリプトは任意の文字列にパスワードを変更して /root/username-pass.txtファイルに保存します。

関連情報