![シェルスクリプトからユーザーアカウントのパスワードを検証する](https://rvso.com/image/23926/%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%8B%E3%82%89%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%AE%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E6%A4%9C%E8%A8%BC%E3%81%99%E3%82%8B.png)
アプリケーションは複数サーバーの標準化スクリプト用です
OS アカウント (AIX) のパスワードが標準化されたプレーンテキスト パスワードと一致するかどうかをシェル スクリプトで確認する方法を探しています。
問題はroot
、アクセスc
もコンパイラももなくpython
、 を含む追加ソフトウェアをインストールできないことですexpect
。
今のところ解決策が見つかっていません…何かアイデアはありますか?
答え1
私は思い切って、以前のコメントを回答に昇格させようと思います。ルート アクセスなしで、AIX システムのデフォルトのセキュリティを破ることなく (パスワード ファイルを非ルート ユーザーに公開することによって)、非ルート ユーザーは暗号化されたパスワード ファイルを読み取ることができないため、非ルート ユーザーは既存のパスワードと任意のパスワードを比較することはできません。
私が想像できる最良のオプションは、アカウントと想定パスワードでログインを試み、結果を確認することです。システムに対してローカルで実行している場合は、ローカルホストに telnet または ssh できます。リモートの場合は、実行されている外部ログイン方法 (ssh など) に制限されます。ログイン プロセスを perl または expect でラップして、機能するかどうかを確認します。(AIX システム自体にこのようなツールをインストールできない場合は、リモート システムから使用またはインストールします)。この方法の小さな欠点の 1 つは、パスワードが正しくない場合、そのユーザーの失敗したログイン試行が 1 つ増えることです。おそらくアカウントがロックアウトされることはありませんが、注意が必要です。