openssl passwd -1 $rootpw
其中$ rootpw包含将是您的root密码的字符串。
这将输出,你可以只把文件或任何在加密后的字符串。我在一个脚本上使用它来设置从数据库供应的虚拟服务器实例。我在通过网络发送它之前计算这个散列,因此设置服务器的脚本可以使用这个散列,而不必发送纯文本。
要回答你的问题,每个服务器将计算哈希值略有不同,并导致不同的哈希,但所有这些散列将等同于相同的密码。您可以使用这些散列中的任何一个,并且在任何服务器上使用时,它们在功能上都是等效的,即使散列的实际内容不同。
例如,我散列foobar的,并且这些是结果:
rootpw=foobar
openssl passwd -1 $rootpw
$1$6pXamKGD$TKQqON1prArop7DpLOyAk1
openssl passwd -1 $rootpw
$1$4A4Mn16f$P7ap2AqNMRK8m72bG/Bve0
openssl passwd -1 $rootpw
$1$DyhsWEMX$i2wH6JpAqoHNFZ0YOBVHj/
openssl passwd -1 $rootpw
$1$m27FIj5e$LZPxVniAeUoZcuUoNHK8c/
openssl passwd -1 $rootpw
$1$qdX0NKm1$45rzxUj..LCJwWB/.fwGH0
在同一台机器上计算,但它们中的任何可被用于等同于密码即使当每个那些散列的是不同的“foobar的'在任何机器上。
因此,只要打开/ etc /你找到行的阴影并粘贴在那里:
root:$1$qdX0NKm1$45rzxUj..LCJwWB/.fwGH0:14415:0:99999:7:::
在我的剧本我爆发,在:的和更新的元素[1],然后将数组回到一个字符串并替换文件中的字符串。如果你愿意,你可以以不同的方式做,特别是如果你知道旧值(你可以通过将它分解成数组来获得)。
我知道这个问题是一个几个月大的,所以你可能理解了它,但我把这个在那里为任何未来的Google员工磨磨蹭蹭并发现这一点。
如果您拥有异构基础架构,那很好。但是如果你的“服务器”涉及各种版本和操作系统,这是行不通的。 – 2012-06-13 14:29:21