继续研究之后,我学到了一些东西...
首先,这是一个非常烦人的自动化任务,尤其是在许多不同的环境中。这个问题的最正确答案可能是@ tomi's:使用Puppet。
最终,我希望让Puppet能够管理基础架构,但是现在无法部署到整个企业的UNIX服务器上以更改root密码。
在阅读了许多联机帮助页和许多Google-fu之后,我设法提出了一个脚本,该脚本循环遍历目标服务器列表,打开SSH连接,并运行以下命令之一:
# Solaris
# Generate new pass via crypt(newpass,salt) and insert it into /etc/shadow
# AIX
$ echo "root:newpass" | chpasswd -f NOCHECK
# Linux
$ echo "newpass" | passwd root --stdin
# IBM VIO (Virtual I/O)
$ echo "echo \"padmin:newpass\" | chpasswd -f NOCHECK" | oem_setup_env
# IBM HMCs (Hardware Management Consoles)
$ chhmcusr -u hscroot -t passwd -v "newpass"
它不仅执行这些命令,还执行了很多操作,但是上面的命令才是神奇的方法。
我找不到在Solaris上非迭代地更改密码的任何简单方法-因此我们求助于/etc/shadow
即时修改。
sudo
完全不使用和完全消除root密码是不是一种选择?