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