Другое решение, не связанное с безопасностью (я также думаю, что лучше сохранить учетные данные в другом файле или в базе данных) - это зашифровать пароль с помощью gpg и вставить его в скрипт.
Я использую пару ключей gpg без пароля, которую храню в USB-накопителе. (Примечание: при экспорте этой пары ключей не используйте --armor, экспортируйте их в двоичном формате).
Сначала зашифруйте свой пароль:
echo -n "pAssw0rd" | gpg --armor --no-default-keyring --keyring /media/usb/key.pub --recipient someone@mail.com --encrypt
Будет распечатан зашифрованный пароль gpg в стандартном выводе. Скопируйте все сообщение и добавьте его в сценарий:
password=$(gpg --batch --quiet --no-default-keyring --secret-keyring /media/usb/key.priv --decrypt <<EOF
-----BEGIN PGP MESSAGE-----
hQEMA0CjbyauRLJ8AQgAkZT5gK8TrdH6cZEy+Ufl0PObGZJ1YEbshacZb88RlRB9
h2z+s/Bso5HQxNd5tzkwulvhmoGu6K6hpMXM3mbYl07jHF4qr+oWijDkdjHBVcn5
0mkpYO1riUf0HXIYnvCZq/4k/ajGZRm8EdDy2JIWuwiidQ18irp07UUNO+AB9mq8
5VXUjUN3tLTexg4sLZDKFYGRi4fyVrYKGsi0i5AEHKwn5SmTb3f1pa5yXbv68eYE
lCVfy51rBbG87UTycZ3gFQjf1UkNVbp0WV+RPEM9JR7dgR+9I8bKCuKLFLnGaqvc
beA3A6eMpzXQqsAg6GGo3PW6fMHqe1ZCvidi6e4a/dJDAbHq0XWp93qcwygnWeQW
Ozr1hr5mCa+QkUSymxiUrRncRhyqSP0ok5j4rjwSJu9vmHTEUapiyQMQaEIF2e2S
/NIWGg==
=uriR
-----END PGP MESSAGE-----
EOF)
Таким образом, только если USB-порт смонтирован в системе, пароль можно расшифровать. Конечно, вы также можете импортировать ключи в систему (менее безопасно или совсем без защиты) или вы можете защитить закрытый ключ паролем (чтобы его нельзя было автоматизировать).
--dig-holes
не изменяет содержимое файла, как это определено при чтении файла: он просто идентифицирует серии нулей, которые можно заменить дырками.
--punch-hole
использует аргументы --offset
и --length
, чтобы пробить дыру в файле, независимо от того, что файл содержит по этому смещению. : это работает, даже если файл содержит там не нули, но в результате содержимое файла изменяется. Учитывая ваш пример файла, запуск fallocate --punch-hole --offset 2 --length 10
заменит десять символов a
нулями, начиная со второго.