В первую очередь важно, какие разрешения установлены в tar-архиве(tar -tzvf mytar.tar.gz
). Но я предполагаю, что они правильные (такие же, как живые ).
Также кажется, что вы распаковываете архив как обычный пользователь. Дегтярный человек говорит:
--no-same-permissions
Apply the user's umask when extracting permissions from the archive (default for ordinary users).
Есть возможность сохранить разрешения:
-p, --preserve-permissions, --same-permissions
extract information about file permissions (default for superuser)
Обратите внимание, что как обычный пользователь вы не сможете установить разрешение, кроме как у вас есть доступ к (, например. вы не сможете установить право собственности на файлы как root)
Так что я бы сказал -использовать для этого root.
Также подумайте, действительно ли вам нужны файлы, принадлежащие пользователю root, в каталоге вашего сайта.особенно если они должны быть доступны для записи apache. ИМХО владелец апача был бы лучше.
if I want to use it in a second shell script I would have to export them instead, so the file would have to look like this:
Вы можете использовать источник второго файла или указать его источник variables.sh
. Есть несколько способов сделать то, что вы хотели, например, выполнить оценку результата обработки файла, но самым чистым способом было бы использовать set -a
оболочки bash:
-a Automatically mark variables and functions which are
modified or created for export to the environment of
subsequent commands.
Таким образом, вы можете достичь своей цели с помощью:
set -a
source variables.sh
Как заметил l0b0 , вы, возможно, захотите set +a
после этого, чтобы не продолжать автоэкспорт переменных в последующем шелл-коде.