Passwords Solaris/Unix密码在线更改

Passwords Solaris/Unix密码在线更改,passwords,solaris,solaris-10,Passwords,Solaris,Solaris 10,我试图用一个命令更改Solaris上的根密码。到目前为止,我已经尝试: echo "password" | passwd --stdin root 返回非法选项--Solaris上的stdin echo -e "password\npassword" | passwd root 返回“新密码”提示 在脚本中使用Solaris 10和Bash 3.2.51。Passwd不会从STDIN读取,在Solaris上也没有从STDIN读取的选项 一种可能的解决方案是使用expect脚本 请参阅:Pas

我试图用一个命令更改Solaris上的根密码。到目前为止,我已经尝试:

echo "password" | passwd --stdin root
返回非法选项--Solaris上的stdin

echo -e "password\npassword" | passwd root
返回“新密码”提示


在脚本中使用Solaris 10和Bash 3.2.51。

Passwd不会从STDIN读取,在Solaris上也没有从STDIN读取的选项

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


请参阅:

Passwd不从STDIN读取,在Solaris上也没有从STDIN读取的选项

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

见:

  • 你可以通过expect实现这一点
  • 您可以使用sed或perl直接编辑/etc/shadow(当然,您必须先散列您的密码,但是,由于您希望在脚本中对其进行硬编码,您可以使用不同的系统,手动设置密码并将其复制到脚本中,然后运行目标系统的脚本。或者自己对其进行散列。这并不难
  • 在Solaris11.3中,从SRU4开始,有一个passwd-p可以直接设置密码的哈希值。它至少可以通过将哈希值放入命令行来混淆密码
  • 但我真正的答案是: 不要这样做…只是不要这样做。通过这种方式设置根密码,你基本上会在其周围写一个带有粉色、蓝色和绿色标记的便条,并公开根密码,供系统上所有能够在设置密码时运行ps的人使用。这不包括管理软件将ps输出放入centra的问题l存储库,从而使这些信息完全不受系统管理员的控制

  • 你可以通过expect实现这一点
  • 您可以使用sed或perl直接编辑/etc/shadow(当然,您必须先散列您的密码,但是,由于您希望在脚本中对其进行硬编码,您可以使用不同的系统,手动设置密码并将其复制到脚本中,然后运行目标系统的脚本。或者自己对其进行散列。这并不难
  • 在Solaris11.3中,从SRU4开始,有一个passwd-p可以直接设置密码的哈希值。它至少可以通过将哈希值放入命令行来混淆密码
  • 但我真正的答案是:
    不要这样做…只是不要这样做。通过这种方式设置根密码,你基本上会在其周围写一个带有粉色、蓝色和绿色标记的便条,并公开根密码,供系统上所有能够在设置密码时运行ps的人使用。这不包括管理软件将ps输出放入centra的问题l存储库,因此将此信息完全置于系统管理员的控制之外。

    谢谢。不幸的是,expect在Solaris 10上不可用。
    的expect
    没有显示结果。谢谢。不幸的是,expect在Solaris 10上不可用。
    的expect
    没有显示结果。expect在Solaris 10上不可用Solaris 10.也许我必须编辑/etc/shadow文件,但这似乎是一个直截了当的解决方案..有一些包将expect作为第三方包提供。此外,还有一些库(例如perl库)模仿expect功能。我在使用选项2时已将其标记为答案。编辑/etc/shadow。这提供了一个解决方案。@Jelphy也许我必须编辑/etc/shadow文件,但这似乎是一个直截了当的解决方案。.不允许
    passwd
    stdin
    读取密码是一个安全的解决方案。允许
    passwd
    stdin
    读取密码会产生一个巨大的安全问题。Expect在Solaris 10上不可用。也许我会这样做必须编辑/etc/shadow文件,但这似乎是一个直截了当的解决方案..有一些带有expect的软件包作为第三方软件包。此外,还有一些库(例如perl)模仿expect功能。我在使用选项2时已将其标记为答案。编辑/etc/shadow。这提供了一个解决方案。@Jelphy Perhap我将不得不编辑/etc/shadow文件,但这似乎是一个直截了当的解决方案。不允许
    passwd
    stdin
    读取密码是一个安全的解决方案。允许
    passwd
    stdin
    读取密码会产生一个巨大的安全问题。