- ベストアンサー
Bシェルでのユーザパスワード変更
Bシェルのスクリプトを実行しユーザパスワードの変更を自動で 行いたいと思っています。 #!/bin/sh passwd 変更したいユーザ名 abcd ・・・(変更したい人のパスワードです[新しいパスワード用]) abcd ・・・(変更したい人のパスワードです[新しいパスワードの聞きなおし用]) このようにシェルを組み実行したところ コマンドプロンプトにてパスワードの入力 を聞かれてしまい、シェルにパスワードを 指定しているのですが認識してくれません。 この問題を解決するにはどのような シェルの記述方法があるのでしょうか。 ご回答よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
passwdコマンドは必ず端末から入力するように作られているので、シェルスクリプトからパスワードを入力するなどは基本的にできません。 もしできるとしても記載されている方法では、abcdというコマンドをpasswdコマンドの次に実行せよという意味であり、入力という意味になりません。リダイレクションの勉強をしてください。 解決するには、 ・擬似端末上でpasswdコマンドを実行させて、その擬似端末に生のパスワードを送り込む ・Cかperlでcrypt関数をつかってパスワードを暗号化してから、passwdファイルを生成したりchpass(OSによる)に渡したりする のいずれかになると思いますが、リダイレクション以前の技術では非常に骨が折れると思います。仮にできたとしてもパスワードがもれるような穴ができかねません。
その他の回答 (1)
- uccello
- ベストアンサー率0% (0/1)
使用するOSはなんでしょう? linuxなら、rootから行えば ----------------------------------- #!/bin/sh echo password | passwd username --stdin ----------------------------------- でできるのもあります。 これはディストリビューションに付属するpasswdによります。ちなみにVineLinux2.6とかはできます。 ただし、実ユーザのpasswordの自動変更はセキュリティ上あまりよろしくない場合が多いので取り扱いには厳重な注意が必要だと思います。
お礼
ありがとうございます。Linuxはあまり触れたことが ないので今度やってみたいと思います。
お礼
ありがとうございました。参考にさせて頂きます。