В отличие от обычных хэшей, хэши паролей должны использовать «соль» и должны быть медленными (обычно за счет повторения )для предотвращения получения хэша злоумышленником (es )от простого восстановления пароля (s ). См. canonical на security.SX и многие связанные с ним.
Оригинальный крипт 1970-х годов (3 ), теперь для ясности называемый DEScrypt,(слегка )соленый:
salt is a two-character string chosen from the set [a-zA-Z0-9./]. This string is used to perturb the algorithm in one of 4096 different ways.
Несколько более новая схема MD5crypt переработана и переработана, но не соответствует современным стандартам. Обе эти и некоторые из лучших схем, которые заменили их в Unix (es ), подробно описаны в https://en.wikipedia.org/wiki/Crypt_%28C%29.
Я посоветовал вам включить отчет об ошибках в файл журнала /tmp/errors
, добавив новую команду во вторую строку. Немного расширив это, мы получаем эту модификацию, которая фиксирует ожидаемый вывод и непредвиденные ошибки в один файл,/tmp/output
:
#!/bin/sh -ex
exec >/tmp/output 2>&1
#source folder
portal=/mnt/<server_IP>/portal/wso2telcohub-3.0.2/repository/deployment/server/synapse-configs/default/
...
В производственной среде можно записать в более определенный файл журнала или даже использовать системный журнал(man logger
для получения подробной информации ).
Флаг оболочки -e
вызывает его выход, как только он выполняет команду, которая возвращает не -статус успеха (не -нулевой код выхода ). Журнал ошибок будет фиксировать выходные данные, сгенерированные в результате любой ошибки, сразу после выхода из оболочки. Флаг -x
позволяет отслеживать -также в файле журнала.
В комментарии вы определили, что«внутри /var
нет каталога rsync для RHEL 7 ».
Итак, причина, по которой ваш сценарий не работает на RHEL 7, заключается в том, что вы не создали этот каталог, который требуется сценарию. Сценарий пытается записать в /var/rsync/.rsync.lock
, но не может этого сделать, поскольку родительский каталог не существует.
Решение состоит в том, чтобы создать каталог и убедиться, что UID, выполняющий ваш скрипт, может писать в него. Еще лучше изменить сценарий, чтобы создать каталог, если он еще не существует, или сообщить об этой ошибке каким-либо образом, который можно будет перехватить и сделать доступным для реального человека.