Это, по сути, имеет мало общего с Perl. В основном вы будете работать с оболочкой и файловой системой.
Если вам нужен пароль для доступа к удаленному сервису, вы должны сохранить его. Независимо от того, зашифрованы они или нет, они должны быть где-то размещены, возможно, на диске, особенно если они не запускаются из пользовательского сеанса (например, GNOME).
Хранить пароли в общедоступных VCS - очень плохая идея. Вы должны хранить там только свой код и хранить пароли в отдельном файле, вне директорий VCS. Например, если у вас есть копия репо в /opt/some-project/scripts
, поместите рядом с ней файл пароля в /opt/some-project/passwd
.
Самая важная проблема - права доступа к файлу passwd
. Сделайте его доступным только для владельца, лучшим из которых является root.
Затем запустите такой скрипт в crontab вашего корня:
cat /opt/some-project/passwd | sudo -U <user> perl /opt/some-project/run-with-passwd-on-stdin
где <user>
- это пользователь (не root!), От которого вы хотите запустить свой скрипт, и скрипт получит файл паролей в качестве стандартного ввода.
Таким образом, файл паролей защищен, если права доступа к файлам верны, а учетная запись root не взломана.