- - PR -
シェルスクリプトでユーザー作成
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-04-06 12:56
最近シェルスクリプトを勉強しています
テキスト(addlist.txt)にIDとパスワードを書いて(user01:pass1234) シェルスクリプトでユーザーを作成したいのですが うまくいきません テキストからIDとパスワードの取得〜ユーザー作成はできるのですが パスワードの設定の所で止まってしまいます スクリプトの最後の echo $PASS echo $PASS がおかしい思うのですが どうすればスクリプトでパスワードを設定できるのでしょうか? 宜しくお願いします ---------------------------------------------- #!/bin/sh while read LINE do USER=`echo $LINE | sed -e 's/[:].*$//'` PASS=`echo $LINE | sed -e 's/^.*[:]//'` done < addlist.txt useradd $USER passwd $USER echo $PASS echo $PASS exit ---------------------------------------------- | ||||
|
投稿日時: 2004-04-06 13:13
passwdコマンドは、標準入力からパスワード文字列を読み込みませんので、
ではだめです。 スクリプトからパスワードを設定する場合は、useraddコマンドの-pオプションに、暗号化済みのパスワード文字列を指定します。 パスワードの暗号化方法は、cryptのマニュアルを参考にしてください。 | ||||
|
投稿日時: 2004-04-06 14:52
即レスありがとうございました
cryptが効かなかったので 調べて作成し以下の様にしたら出来ました 勉強になりました ありがとうございました ------------------------------------ #!/bin/sh while read LINE do USER=`echo $LINE | sed -e 's/:.*$//'` PASS=`echo $LINE | sed -e 's/^.*://'` useradd -p `crypt $PASS` $USER done < addlist.txt exit ------------------------------------ | ||||
|
投稿日時: 2004-04-07 01:50
OSがなにか分かりませんが
Redhat Linuxとかだったら chpasswdを使えばすみますね。 | ||||
|
投稿日時: 2004-04-07 11:56
OSはFedoraCore1です
chpasswdでも出来ました 一度書き出したりしてますけど(汗 本当に勉強になります ありがとう御座います ------------------------------------ #!/bin/sh #FILE READ while read LINE do USER=`echo $LINE | sed -e 's/:.*$//'` #TEMP FILE CREATE echo $LINE >> addlist_temp.txt #USERADD useradd $USER chpasswd < addlist_temp.txt #TEMPFILE DELETE rm -f addlist_temp.txt done < addlist.txt exit ------------------------------------ | ||||
|
投稿日時: 2004-04-07 12:31
> #TEMP FILE CREATE
> echo $LINE >> addlist_temp.txt > > #USERADD > useradd $USER > chpasswd < addlist_temp.txt > > #TEMPFILE DELETE > rm -f addlist_temp.txt これって、 echo $LINE | chpasswd といっしょですよね。 | ||||
|
投稿日時: 2004-04-09 10:32
>echo $LINE | chpasswd
>といっしょですよね。 ご指摘の部分を修正し短くなりました 有難うございます ------------------------------------ #!/bin/sh #FILE READ while read LINE do USER=`echo $LINE | sed -e 's/:.*$//'` #USERADD useradd $USER echo $LINE | chpasswd done < addlist.txt exit |
1