Из 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 сохраняет разрешения исходного файла.
Может кто-нибудь объяснить, почему?