- - PR -
newusersコマンドでのユーザ一括登録でパスワードが9文字移行無効になる
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-05-20 10:08
こんにちは。
newusersコマンドを使用してユーザの一括登録を行っています。 しかし、登録後ログインをする際に9文字目移行のパスワードが無効になって いる事が分かりました。パスワードの8文字目までを正確に入れれば、 9文字目移行は何を入れても入れてしまうのです。 実際に使用しているファイルは下記の様な形です。 #cat users.txt user001:mypasswd001::::/home/user001:/bin/bash user002:mypasswd002::::/home/user002:/bin/bash ・・・ ・・・ ユーザ登録後、 # passwd ユーザ名 を使用し、パスワードを変更すると9文字目移行も効いてきます。 OSはRedHat9を使用しています。 何故、バッチ処理を行ったときのみ9文字目移行のパスワードが無効になるのかが 分からなくて困っています。 ご存知の方はいらっしゃいませんか? よろしくお願いいたします。 | ||||
|
投稿日時: 2005-05-20 10:47
こんにちは。
これは、パスワードが DES を使用した暗号化がされるからでしょうね。 この場合は、パスワードの有効長は 8文字になります。 ※ 長いパスワードに対応しているのは md5を使用した暗号化 ※ /etc/shadow を見れば、パスワード部分の形式が明らかに違うのが分かります ※ crypt(3)が参考になるでしょうか。 newusers の仕様の問題と考えられるので、良い対処は無さそうに思います。 別途パスワード変更のスクリプトを作るくらいでしょうか? | ||||
|
投稿日時: 2005-05-20 15:57
ありがとうございます。
/etc/shadowを確認してみました。 コマンドで追加したユーザとバッチ処理で登録したユーザでは、 パスワードの形式が違っていました。 バッチ処理を行うと、md5ではなくDESで登録されてしまうんですね・・・。 パスワード変更のスクリプトで対応したいと思います。 ありがとうございました。 | ||||
|
投稿日時: 2005-05-21 00:11
こんばんは。
ちょっとパスワード変更のスクリプトが思いついたので載せてみます。 # while IFS=':' read U P D; do echo "$P" | passwd --stdin "$U"; done < users.txt ※ users.txt は、最初の Kyaloさんの書き込みと同じく、newusers(8)で使用する形式とします。 スクリプトというよりはワンライナーですね。 なお、動作を保証している訳ではありませんので、もし万が一本番で使用されるような方がいらしたら、事前に検証するように注意してください。 以上、ご参考まで。 [ メッセージ編集済み 編集者: angel 編集日時 2005-05-21 01:08 ] |
1