Есть extundelete, magicrescue, testdisk и многое другое. Из них extundelete лучше всего соответствует вашим требованиям. Изучите вариант --restore-directory /some/path
. По крайней мере, вы можете правильно назвать свои файлы, поскольку они были названы до вашей ошибки. Вы также можете ограничить восстановление в диапазоне дат.
Я согласился с @Jeff Schaller, chmod понятен и очевиден по сравнению с umask.
попробуйте построить один лайнер с оператором &&
и предпочтительное разрешение каталога .ssh
изменено на 644
bash попытается запустить команду слева направо от оператора &&
и продолжается только тогда, когда статус возврата всех "левых" команд равен 0
mkdir -p "${HOME}/.ssh/" && chmod 644 "${HOME}/.ssh/" && echo "${CI_PRIVATE_SSH_KEY}" > "${HOME}/.ssh/id_rsa" && chmod 600 "${HOME}/.ssh/id_rsa"
или umask 133 для .ssh
, 177 для ключа,
(umask 133; mkdir -p "${HOME}/.ssh/";umask 177; echo "${CI_PRIVATE_SSH_KEY}" > "${HOME}/.ssh/id_rsa")
umask 077 будет:
➜ umask 077
➜ mkdir foo; ls -ld foo
drwx------ 2 richard staff 64 13 Oct 12:42 foo
➜ touch foo/bar; ls -l foo/bar
-rw------- 1 richard staff 0 13 Oct 12:42 foo/bar