2016-12-16 10 views
-1

私は対話型のbashスクリプトを用意しています。まず対話型のbashスクリプトを実行してから、まずユーザー名を尋ねてから、パスワードを尋ねてから再度パスワードを確認します。 (これはUbuntuではなく私たちのERPシステムにユーザーを作成します)対話型のBashスクリプト

私は1000人以上のユーザーとランダムに生成されたパスワードのCSVを持っているため、これらのユーザーをすべて作成する必要があります。私はCSVからユーザーを選んだスクリプトを書いて、パスワードを尋ねられたらCSVからパスワードを渡してユーザーを作成します。以下は私がやったことですが、それは意図したとおりに動作しませんでした:

パスワードが一致しないというエラーが表示されます。 のような個々のユーザーの作業のための実際のスクリプト:

~$ createuser xyz <press Enter> 
password for xyz: whatever <press enter> 
confirm password for xyz whatever <enter again> 
~$ 

そのこと:私は1つずつ追加しますが、私は小さなスクリプトを超える使用しようとしていた1000 +がある場合

~$ createuser xyz whatever whatever <press enter> 
~$ 

それは正常に動作しますCSV。

答えて

1

最初のオプション:を使用してくださいnewuserspasswdの一部です。

DESCRIPTION 
    The newusers command reads a file (or the standard input by default) 
    and uses this information to update a set of existing users or to 
    create new users. Each line is in the same format as the standard 
    password file. 

入力ファイルのフォーマットは:あなたが見ることができるように

username:passwd:UID:GID:full name,room number,work phone,home phone,other:directory:shell 

passwordはファイルで提供されています。

ダウンサイドでは、提供された形式のcsvをtxtに変換する必要があります。

newusers < file.txt 

二番目のオプション:あなたは-pスイッチでuseraddを使用することができます。

useradd -m -p $(mkpasswd "password") username 

-mユーザーのホームディレクトリが存在しない場合は作成します。

-p暗号化されたパスワードで、crypt(3)によって返されます。

+0

while IFS=# read -a csv_line do printf "%s\n%s\n" ${csv_line[1]} ${csv_line[1]} | createuser ${csv_line[0]} done 

と同様に実行DB内のいろいろなテーブルにヒットして、既存のスクリプト作成ユーザーを作成し、DB内のさまざまなテーブルに必要な情報を保存するので、このスクリプトを使用してユーザーを作成する必要があります。 – User2403

+0

これは同じユーザーを作成します。単にあなたのcsvを指定された形式に変換するか、または2番目のオプションを使用して 'variables'に値を指定するだけです。 –

+0

私は、ubuntu用ではなく、私たちのERP用のユーザーを作成する必要があります。 – User2403

0

私は私のスクリプトのように見える、私は必要なものを見つける:これらはERPの一部であるとして、いいえ、私はこれらのユーザーを作成するスクリプトを持っている

./insertalluser < Desktop/Passwoerter.csv 
関連する問題