Вот пример того, как легко сделать это с одним файлом. Никаких дополнительных инструментов, скриптов, временных файлов и т. Д. Не требуется. Вы можете расширить этот метод для работы с большим количеством файлов, если это необходимо.
В этом конкретном примере разрешения сохраняются в переменной с помощью команды stat
. Затем файл временно удаляется из любых ограничительных разрешений. Затем с этим что-то делается (что могло произойти из-за этих прежних ограничений). Наконец, исходные разрешения восстанавливаются.
file=$1
saved_permissions=$(sudo stat -c %a $file)
sudo chmod 777 $file
# <DO SOMETHING HERE>
sudo chmod $saved_permissions $file