私は100人を超えるユーザーのパスワードを追加して設定するスクリプトを作成しました。例: ユーザーのパスワードを設定するには、すべてのユーザーに対して「user+123」形式を設定したいと思います。つまり、ユーザーはパスワードのユーザー名に応じて変更されます。これに対するスクリプトをどのように書くことができますか?
#!/bin/bash
for i in `more users.txt`
do
useradd $i;
echo "User $i added successfully"
passwd $("$i"123)
echo "Password added successfully for user"
done
答え1
#!/bin/bash
for i in $( cat users.txt ); do
useradd $i
echo "user $i added successfully!"
echo $i:$i"123" | chpasswd
echo "Password for user $i changed successfully"
done
この小さなスクリプトがあなたが探しているものでなければなりません。まず、ユーザーを追加してからパスワード変更を続行します。バックティックは使用されなくなり、避けるのが$()
良い選択です。
答え2
他の答えは、これを行う方法に関する技術的な答えを提供します。しかし、お願いしないでください。
脅威の行為者がこのパターンを見た後は、他のユーザーとしてログインできます。 (最初にログインしたときにパスワードを強制的に変更しても、誰かが他のすべてのユーザーをロックできます。)
代わりに、各ユーザーに新しいパスワードを設定するための任意のパスワードまたはトークンを電子メールで送信する必要があります。
答え3
以下のスクリプトでは、user1、user2、user3、user4、user5など5人のユーザーを作成し、各ユーザーのパスワードを「username + 123」に設定しましたが、テスト後に正常に機能しました。
必要に応じてユーザー数を変更できます。
for i in user{1..5}; do useradd $i; passwd -d $i; echo $i"123" | passwd $i --stdin; done
特定のユーザー名を含むテキストファイルがある場合は、次のものを使用できます。
for i in $(cat users.txt); do useradd $i; passwd -d $i; echo $i"123" | passwd $i --stdin; done