Почему Tar сохраняет исходные разрешения файлов, даже если они не передают переключатель `-p`,` --preserve-permissions` или `--same-permissions`?

Из man 1 tar:

[...]
     -p, --preserve-permissions, --same-permissions
           extract information about file permissions (default for superuser)
[...]
     --no-same-permissions
           apply the user's umask when extracting permissions from the archive
           (default for ordinary users)
[...]

Из этого я понимаю, что по умолчанию выделенные файлы разрешены на основе пользовательской umask, если пользователь не является root:

% umask
002

Так что файлы, извлеченные мной, должны иметь разрешения 664 (666 - 002).

Однако:

% touch foo
% chmod +x foo
% ls -l
total 0
-rwxrwxr-x 1 user user 0 nov  3 19:36 foo
% tar cf foo.tar foo
% rm foo
% tar xf foo.tar 
% ls -l
total 12
-rwxrwxr-x 1 user user     0 nov  3 19:36 foo
-rw-rw-r-- 1 user user 10240 nov  3 19:36 foo.tar

Т.е., Tar сохраняет разрешения исходного файла, даже если я не прошел переключатель -p, --preserve-permissions или --same-permissions.

Тем не менее, если я передаю переключатель --no-same-permissions:

% tar xf foo.tar --no-same-permissions
% ls -l
total 12
-rwxrwxr-x 1 user user     0 nov  3 19:36 foo
-rw-rw-r-- 1 user user 10240 nov  3 19:36 foo.tar

Still Tar сохраняет разрешения исходного файла.

Может кто-нибудь объяснить, почему?

1
задан 3 November 2015 в 23:56

0 ответов

Другие вопросы по тегам:

Похожие вопросы: