web-dev-qa-db-ja.com

スクリプトを使用して複数のボックスでパスワードを変更する

私は約400個のAIXボックスがある環境で作業しています。私はrootアクセス権を持っておらず、通常のユーザーです。この環境には、認証のためのLDAPのような一元化されたメカニズムがないため、パスワードは/etc/shadowファイルでのみ維持されます。

セキュリティポリシーにより、30日ごとにパスワードを変更するようになっているため、毎月すべてのボックスのパスワードを変更できないという大きな問題が発生し、ボックスごとに異なるパスワードを使用することになります。パスワードを維持することは大きな頭痛の種です。

ボックスのリストにログインしてパスワードを変更するスクリプトを記述して、すべてのボックスで毎月パスワードを変更し、同じパスワードを使用できるようにする方法はありますか?

5
Barani Kannan

pssh

1つのアプローチは、psshのようなコマンドを使用して、複数のシステム間で同時にsshを並行して実行することです。

このようなコマンドで十分です。

$ pssh -h ~/pssh-hosts 'printf "%s\n" old_pass new_pass new_pass | passwd'

これにより、次のコマンドが実行されます。

printf "%s\n" old_pass new_pass new_pass | passwd

パスワードを「変更」します。 psshコマンド:

$ pssh -h ~/pssh-hosts '... commmands to run ...'

ファイル内のホストのリスト全体でこのコマンドを実行します~/pssh-hostsすべて同時に並行して。

このチュートリアルでは、psshの動作例をいくつか示します: pssh HOWTOpsshコマンドには、複数のシステム間でファイルを並行してコピーするためのpscpなどの他のコマンドもあります。

sshpt(SSH電動工具)

psshと同じ無駄に、 sshpt があります。 psshと同様に機能しますが、別のオプションです。

その他のオプション?

これら2つ以外にもたくさんのオプションがあります。このServerFaultQ&Aにリストされているそれらの詳細を見ることができます: 優れた最新の並列SSHツールは何ですか?

参考文献

3
slm