openssl passwd -1 $rootpw
Где $ rootpw содержит строку, которая будет вашим корневым паролем.
Это выведет зашифрованную строку, которую вы можете просто вставить в файл или что-то еще. Я использую это в сценарии, который устанавливает экземпляры виртуального сервера, которые предоставляются из базы данных. Я вычисляю этот хеш перед отправкой по сети, чтобы скрипт, который настраивает сервер, мог просто использовать этот хеш вместо того, чтобы отправлять его в виде простого текста.
Чтобы ответить на ваш вопрос, каждый сервер вычислял бы хэш немного по-разному и приводил бы к другому хешу, но все эти хеш-коды равнялись бы одному и тому же паролю. Вы можете использовать любой из этих хэшей, и они будут функционально эквивалентны при использовании на любом сервере, даже если фактическое содержимое хэша будет другим.
Например, я хэшировал 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 / shadow и вставьте его туда, где вы найдете строку:
root:$1$qdX0NKm1$45rzxUj..LCJwWB/.fwGH0:14415:0:99999:7:::
В моем скрипте я взрываю его в элементе: 's и update [1], затем объединяю массив обратно в строку и заменяю строку в файле. Вы можете сделать это по-другому, если хотите, особенно если вы знаете старое значение (которое вы можете получить, взорвав его в массив).
Я знаю, что этому вопросу несколько месяцев, так что вы, наверное, догадались, но я выкладываю его на всякий случай, когда любой будущий гуглер придет и найдет его.