日付に基づいて毎日ルートパスワードを変更したいと思います。パスワードは文字列と日付の組み合わせと同じです。以下のコードはうまくいきます。
echo -e "pass"$(date +"%d%m%Y")"\n""pass"$(date +"%d%m%Y") | passwd root
しかし、システムが起動するたびに、日付が真夜中に変更されたとき(システムがオンになっている場合)、どのように呼び出すべきですか?
答え1
全然知らないなぜあなたはこれをしたいでしょう。セキュリティが気になる場合は、誰かが7月1日にあなたのパスワードを見つけた場合、7月31日または9月15日に知ることができます。
あなたの質問に答えるには、スケジュールされた時間またはシステムが再起動されたときにパスワードの更新が完了するように、それをインストールする必要がありますanacron
。システムが常にオンになっているとは想定せずに定期的に予約できます。どのディストリビューションを使用しているかはわかりませんが、パッケージアーカイブに存在する必要があります。
cron
または、既存のスクリプト(真夜中にパスワードを変更する)とinitスクリプト(再起動時に処理)を混在させて、パスワードを常に最新の状態に保つこともできます。
どちらの場合も、パスワードを変更するコマンドをスクリプト(たとえば/usr/local/sbin/rootpass.sh
)に入れてから、またはを使用してcron
initanacron
スクリプトからそのスクリプトを呼び出します。
答え2
アカウントをできるだけ保護してシステムを強化することも悪くないと思います。ほとんどの場合、認証プロセスに追加の障害が発生しますが、それを解決する意思がある場合は問題になりません。しかし、考慮すべき重要な点は危険です。実際、より多くの欠陥が発生します。システムの複雑さを高めます。
オープンソースと徹底したテストを受けたソフトウェアのみを使用することは、システムセキュリティと暗号化の分野で一般的な慣行です。したがって、独自のスクリプトベースのソリューションを使用するのではなく、既存のソリューションを使用することをお勧めします。
私の提案は以下を使用することです。時間ベースの使い捨てパスワード(TOTP)は、例えば、次の実装者によって実装されます。Google Authenticator
これは、現在の時間を使用して使い捨てパスワードを生成する2段階認証方法です。 Google Authenticatorの場合、このパスワードはGoogle Authenticatorスマートフォンアプリで計算できます。一般的な設定は、(固定)ユーザーアカウントパスワードと使い捨てパスワードを要求することです。これプラグ型バリデータモジュール(PAM)を使用して、ワンタイムパスワードを必要とするアプリケーション(SSH、ディスプレイマネージャ...)とアカウント(ルート、すべて...)を設定できます。
あなたの目標に従ってチュートリアルを読んでください。[1]そして[2]あなたのニーズに合わせて作成できることを確認してください。