Вопрос: Разрешения не могут быть восстановлены для tar
Ответ: только рут может.
Ссылка: прочитайте этот информативный Q & A на askubuntu:
даже если вы используете флаг tar
--same-owner
, вам все равно придется извлечь файлы как root, чтобы сохранить право собственности.
Обновление: вот еще несколько подробностей о поведении tar
. Допустим, мы user1
и создали архив с помощью tar cvpzf test.tar.gz .
это включает в себя файлы, принадлежащие user2
. Если мы извлечем архив в каталог, принадлежащий user2
с разрешениями 777
, вот результат:
$ tar xpvzf test.tar.gz
./
./file1
./file2
tar: .: Cannot utime: Operation not permitted
tar: .: Cannot change mode to rwxrwxr-x: Operation not permitted
tar: Exiting with failure status due to previous errors
$ ls -al
drwxrwxrwx 2 user2 user2 .
-rw-rw-r-- 1 user1 user1 file1
-rw-rw-r-- 1 user1 user1 file2
tar
выдает ошибку, потому что не может изменить владельца и разрешения для файлов, принадлежащих user2
. Однако файлы извлекаются, хотя и принадлежат пользователю user1
.
Вот что происходит, если извлечение выполняется в каталоге, принадлежащем user1
:
$ tar xpvzf test.tar.gz
./
./file1
./file2
$ ls -al
drwxrwxr-x 2 user1 user1 .
-rw-rw-r-- 1 user1 user1 file1
-rw-rw-r-- 1 user1 user1 file2
Разрешения восстанавливаются как для папки, так и для файлов, и не выдается никакой ошибки, даже если владение user2
не может быть восстановлено.
Судя по собственному ответу OP, кажется, что установщик проверяет код завершения tar
и останавливается, если обнаружена ошибка. chown
папки для текущего пользователя tar
работать автоматически, поэтому программа установки может продолжить работу.