簡単なスクリプトが必要です。
nameというファイルはuserID
10個のunixIDで構成され、nameという他のファイルはpasswd
fileの10個のunixIDの10個のパスワードで構成されていますuserID
。各ファイルの最初の単語は unixID とその unixID に対応するパスワードを表します。
特定のユーザーIDにパスワードを割り当てるには、2つのforループまたは別の操作を実行する必要があると思います。
誰でもどんな提案がありますか?
ベストアンサー1
ファイルを使用してください記述子単一のwhileループ実行で2つのファイルの入力を読み込みます。例は次のとおりです。
#!/bin/bash
# Assign file descriptors to users and passwords files
exec 3< users.txt
exec 4< passwords.txt
# Read user and password
while read iuser <&3 && read ipasswd <&4 ; do
# Just print this for debugging
printf "\tCreating user: %s with password: %s\n" $iuser $ipasswd
# Create the user with adduser (you can add whichever option you like)
adduser $iuser
# Assign the password to the user, passwd must read it from stdin
echo $ipasswd | passwd --stdin $iuser
done
passwd
でパスワードを読み込むように求める方法に注意してくださいstdin
。ファイルが存在するか、ユーザー名にスペースがないか、ユーザーがシステムにまだ存在していないかなどを確認するなど、上記のコードに多くの完全性チェックを追加する必要があるかもしれません。両方のファイル名を入力パラメータとして受け入れるスクリプト。
この回答スタックオーバーフローに非常に便利です。