我收到了在所有基于 Linux 的机器上每 10 天更改一次 root 密码的请求,这些是生产机器并且启用了 grub 密码,因此如果我们忘记/遗漏了 root/grub 密码,我们将无法恢复。
我写了一个简单的脚本,将密码重定向到文件,即 nfs 共享文件。所以它每周都会将密码写入 nfs 共享文件。
文件格式如下
Machine1:
Machine2:
Machine3:
我们将执行类似的脚本
sh autopass.sh Machine1
因此它更改了 Machine1 的 root 密码,并在 nfs 共享文件中用新密码替换了 Machine1 的旧密码。所以我们每周都会向授权用户发送密码
下面是脚本
#!/bin/sh
#Function to create Random Password
function randpass() {
[ "$2" == "13" ] && CHAR="[:alnum:]" || CHAR="[:graph:]"
cat /dev/urandom | tr -cd "$CHAR" | head -c 8
echo
}
#Get Random Password to rootnewpass variable
rootnewpass=`randpass`
#Replace new password in file rootpass
sed -i "s/^\(${1}:\).*/\1${rootnewpass}/" /nfs/rootpass
#Change new Password using new random generated keyword
echo -e "root:$rootnewpass" | chpasswd
所以现在我想要的是我的方法是好的还是任何其他更好的方法来实现它。这里的问题是我不应该把密码放错地方,这意味着不应该将错误的密码重定向到文件。
我也将相同的概念用于 grub 密码。
注意:所有机器不应该有相同的 root 密码,因此我选择了这个选项。
请指教
最佳答案
您可以通过以下方式更改一批服务器(100台服务器:10.1.0.1到10.1.0.100)上root用户的密码:
# for ((i=1;i<=100;i++)); do \
ssh 10.1.0.$i 'echo -e "newpassword\nnewpassword" | passwd --stdin root'; \
done;
让它成为一个 cron 作业,这应该会起作用。
关于linux - 每周为 root 用户脚本更改密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41072103/