我编写了一个为 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
在下面的脚本中,我创建了 5 个用户,例如 user1、user2、user3、user4、user5,并将每个用户的密码设置为“用户名+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