web-dev-qa-db-ja.com

多くのLinuxサーバーで/ etc / shadowを編集するにはどうすればよいですか?

約20台のLinuxサーバーでrootパスワードを変更したいのですが。主にCentOSとUbuntu。

それで、私はPuppet、chef、およびcfengineを見てきましたが、それらがそれを実行できるかどうか、またはそれらがタスクのために過剰に殺されるかどうかは本当にわかりませんか?

設定ファイルの編集方法に関する推奨事項はありますか、/etc/shadowとりわけ、多くのLinuxサーバーで?

2
Sandra

pssh あなたが探しているものかもしれません

3
schwert

コマンドusermod -p '_hash_' rootを実行するだけで済みます。ここで、hashは、そのシステムに適したパスワードのハッシュです。したがって、usermod -p '$1$aNwwp0wS$RzSqCt3ntYs.V2TxcXheA' rootのようなコマンドは、rootにpasswordのパスワードを持たせます。

これを正しい方法で実行したい場合は、システムごとに固有のソルトと固有のハッシュも生成します。インストールされている場合は、この目的でmkpasswdを使用できます。

$ # create a md5 password has for 'password'
$ echo 'password' | mkpasswd -s -m md5
$1$mJrKn6xs$NTfRbrqbaVzsqcPzyXXt3/

PS個人的には、rootにパスワードを無効に設定してから、rootアカウントへのアクセスにsshキーベースの認証を使用することを好みます。ルートauthorized_keysファイルの更新を自動化するために、非常に簡単にスクリプトを作成できるはずです。 SSHログレベルによっては、rootアカウントへのアクセスに使用されたキーも表示されます。これは、誰かが何かを壊したのを追跡するのに役立つ場合があります。

7
Zoredache

あなたはしません。いいえ、/ etc/shadowを直接編集しないでください。 20台のサーバーの場合、おそらくログインして、passwdを使用してrootパスワードを変更します。

頻繁に行う必要がある場合にできることは、 Expect を使用して、次のようなループに入れることです。

for i in `cat <file_with_server_names>`
do 
     ssh <user>@$i
     <expect stuff here> 
done

使用していない薄っぺらな擬似コードで申し訳ありませんが、約6か月で期待できます。

rootはトリッキーなものです。個人的には、ネットワーク/サービスがダウンした場合のフォールバックプランとして、rootを外部サービスに結び付けるのは好きではありません。通常、私はLDAPまたはADの統合を提案していました(すでにADドメインを持っている場合!)

5
Zypher

Puppetはユーザー(および他の多くのもの)を管理できます。 puppetを環境に統合する3台以上のサーバーを持つ管理者を温かくお勧めします。 puppetlabs.comのwikiには、すぐに立ち上げて実行するのに役立つ多くの記事があります。利点は間違いなくあなたの時間の価値があります。このコードを一度書くことを検討してください。

User {"sandra":
 ensure => present,
 group => ["sysadmin","dba"]
}

...そしてそれを与えられた時間枠内に多くのサーバーに適用しました。

そして、ええ、あなたのシャドウファイルを手で編集しないでください:)

Cluster-sshのようなパッケージもありますが、私の経験では、このタイプのソフトウェアを使用したワークフローは、3〜4台を超えるサーバーでは不快になります。これは、画面領域の観点からです。サーバーファイルシステムのレイアウトの違い(タブ補完など)、インストールされたパッケージなどが原因で発生するさまざまな問題についても話していません。

5
ztron

すべてのシステムに対してsshキー交換が確立されている場合は、各システムに対してsshを実行し、パスワードを更新するための基本的なループを検討します。そうでない場合は、各システムに個別にsshを実行し、パスワードを変更する方が理にかなっている場合があります。 20システムはそれほど多くはありません。

1
ewwhite

sshpass を見てください。キーがIPアドレスで、値が対応するパスワードである連想配列をループすることで、これを行うことができます。

パスワードは次の方法で変更できます。

passwd <<EOF
ch4ng#m3
ch4ng#m3
EOF

これを行った後、履歴をクリアする必要があります。

1
quanta