Solaris/Unix 在线更改密码

Solaris/Unix password change in-line

我正在尝试通过单个命令更改 Solaris 上的 root 密码。到目前为止我已经尝试过:

echo "password" | passwd --stdin root

returns 非法选项 -- Solaris 上的标准输入。

echo -e "password\npassword" | passwd root

Returns 一个 'New Password' 提示符。

脚本使用 Solaris 10 和 Bash 3.2.51。

Passwd 不从 STDIN 读取,并且在 Solaris 上没有从 STDIN 读取的选项。

一个可能的解决方案是使用 expect 脚本

参见:http://www.unix.com/solaris/161023-solaris-passwd-script.html

  1. 你可以通过 expect 做到这一点。
  2. 您可以直接使用 sed 或 perl 编辑 /etc/shadow(当然您之前必须对密码进行哈希处理,但是如果您想在脚本中对其进行硬编码,您可以使用不同的系统,设置密码手动将其复制到您的脚本和 运行 目标系统的脚本中。或者自行散列。并不难。
  3. 从SRU4开始的solaris 11.3有一个passwd -p可以直接设置密码的hash。至少可以通过将哈希值放入命令行来混淆密码。

但我真正的答案是: 不要这样做......只是不要这样做。通过以这种方式设置 root 密码,您基本上可以在 public 中为系统上能够 运行 ps 的每个人写一个带有粉红色、蓝色和绿色标记的便条,其中 root 密码在您设置密码的那一刻。这还不包括管理软件将 ps 输出放入中央存储库并因此使这些信息完全不受系统管理员控制的问题。