- 締切済み
パスワード変更
お世話になります。 OS:solaris9 パスワード管理上、定期的にユーザのパスワードの変更を実施しようと思うのですが、passwdコマンドで数十件のユーザを毎月変更するのは手間なので、shで修正できれば と考えています。 しかしshで修正するとnew-passwordとre-passwordのプロンプトが出力される為、そこで処理がとまります。 何とかsh内部でプロンプトへ自動入力できる様にならないのでしょうか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- noino
- ベストアンサー率0% (0/1)
#1に補足します。 似たような環境に同じアカウント/パスワードを設定する場合、passwd/shadowの情報部分をコピーしてます。 このように同じパスワードであれば直接書き換えられると思いますが、異なる場合は難しいでしょうね。いくつかパタンが決まっているならそれぞれのデータを用意し、書き換えられるかも知れませんが。
- gaktank
- ベストアンサー率65% (23/35)
#3です。 本番機なのでインストール不可なんですね。 実際問題として、シェルのみでpasswdコマンドの介入待ちを自動入力する方法はありません。 ツールのインストール不可ということは、自動化しようとしているパスワード変更シェルスクリプトもインストール不可と察しますので、おそらく資材持込みとして作業(FDやCD-Rにスクリプトを入れておいて、そこから実行)するのでしょうね。 なので、その資材にスクリプトとexpect をまるごと入れるのはどうでしょうか。 また、十数台のマシンのパスワードを変更する場合、私も#1さんの方法でやっています。1台目のユーザをパスワード変更して、他のサーバに/etc/shadowの該当する行をコピーします。
お礼
回答ありがとうございました。ちょっと出張でしばらくネットの確認ができなくて、お礼が遅くなりすみませんでした。 結局、開発機でC言語でスクリプトを組み、passwdファイルを直接書き換えshにてftpする仕組みで対応するようにしました。 色々ご指導していただき感謝しています。ありがとうございました。
- gaktank
- ベストアンサー率65% (23/35)
expect を使えば可能です(やり方は参考URLに)。 ただし、Solarisにはデフォルトで入っていなかったと思いますので、下記サイトあたりから入手してインストールする必要があります。 http://sunsite.tus.ac.jp/sun/solbin/
- Tacosan
- ベストアンサー率23% (3656/15482)
passwd は標準入力から読むわけではないので, sh だけでは passwd に入力を与えることはできないはず. OpenSSL とか入ってれば openssl passwd を使えば暗号化したパスワードが得られるので, これを使って /etc/shadow を変更すればいい... のかなぁ?
- noino
- ベストアンサー率0% (0/1)
パスワードを自動で変更する位なら普段使わないアカウントはロックし、必要なアカウントのみパスワード期限を区切ってはいかがでしょうか。 スクリプトでパスワード変更するのなら、パスワードを管理しているファイルを直に書き換える方法があります。多くのマシンに同じアカウントを作成する場合に使ってます。このファイルですが、パーミッションを間違えるとセキュリティ上の問題が発生しますのでご注意を。
補足
返信ありがとうございます。 パスワード管理しているファイルとの事ですが、shadowファイルの事でしょうか? 確かに新規のユーザを作る場合は、passwdファイルとshadowファイルに追加し、パスワードは個人で設定しても らう事は可能ですが、今回は既存のユーザに対し、パスワードは、 こちらで作成したものに強制的に変更したいと考えています。 その場合は、やはりスクリプト内で、passwdコマンドを実行し プロンプトに対し、値を挿入してやるしかないのかな?と思うのですが、 挿入する方法がわかりません。 ツールを使えば可能な事は知っているのですが、本番機なので ツールのインストールができない状況で、shコマンドでなんとか ならないのかな?と考えています。
お礼
回答ありがとうございました。ちょっと出張でしばらくネットの確認ができなくて、お礼が遅くなりすみませんでした。 結局、開発機でC言語でスクリプトを組み、passwdファイルを直接書き換えshにてftpする仕組みで対応するようにしました。 色々ご指導していただき感謝しています。ありがとうございました。