Мне нужно сделать резервную копию некоторых данных с помощью опции «p» в команде tar. Проблема в том, что в месте, где я собираюсь восстановить эти данные, будут одни и те же пользователи, но у этих пользователей могут быть разные идентификаторы. Имеет ли это какое-то значение для tar или он правильно восстановит права доступа по имени пользователя?
20
tar
делает запись имен владельцев.Подведение итогов предыдущих ответов и добавление важной информации:
При создании архивов,
tar
всегда будет сохранять файлы идентификатор пользователя и группы, если не указано иное с--owner=NAME
,--group=NAME
. Но все равно всегда будет пользователь и группа, связанные с каждым файлом.GNU деготь, и , возможно , другие версии
tar
, также хранить пользовательские и групповые имена , если--numeric-owner
не используются. bsdtar также хранит имена пользователей и групп по умолчанию, но поддержка--numeric-owner
опции при создании появилась только в bsdtar 3.0 (обратите внимание, что bsdtar поддерживает опцию при извлечении гораздо дольше).При извлечении как обычный пользователь все файлы всегда будут принадлежать пользователю. И это не может быть иначе, поскольку извлечение файла создает новый файл в файловой системе, и обычный пользователь не может создать файл и передать права собственности кому-либо еще.
При извлечении в качестве корня ,
tar
по умолчанию будет восстановить владение извлекаемых файлов, если--no-same-owner
не используются, что даст право собственности на корень сам.В GNU дегтя, bsdtar, и , возможно , других версий
tar
, восстановлено право собственности осуществляется пользователем (и группы) имя , если эта информация находится в архиве и есть соответствующий пользователь в системе назначения. В противном случае он восстанавливается по ID. Если--numeric-owner
опция включена, имена пользователей и групп игнорируются.Разрешения и временные метки также сохраняются в архив и восстанавливаются по умолчанию, если не используются параметры
--no-same-permissions
и / или--touch
не используются. Когда извлечено пользователем, пользовательumask
будет вычтен из разрешений , если--same-permissions
не используются.--preserve-permissions
и--same-permissions
являются псевдонимами, и имеют ту же функциональность, что и-p
Надеюсь, это поможет прояснить проблему! :)
источник
tar
позволяют указывать произвольные имена в--owner
или--group
, в прошломtar
выполнял произвольный поиск на текущем компьютере/etc/passwd
и отказывался запускаться, если не было совпадения.--owner
но также добавленный в--numeric-owner
флаг? Как tar справляется с этими конкурирующими требованиями?--owner
и--numeric-owner
не являются взаимоисключающими, и служат очень разным целям:--owner=USERNAME
будут перезаписывать файлы и владельцев dirs при архивации файлов, но--numeric-owner
просто не будут хранить имя пользователя, только его числовой идентификатор.Используйте параметр --same-owner для GNU tar. См. Http://www.gnu.org/software/tar/manual/html_section/Attributes.html.
источник
Если вы пытаетесь передавать файлы между двумя системами, rsync по умолчанию установит права доступа по имени пользователя вместо uid, просматривая имена пользователей с обеих сторон. Только если пользователь не существует в одной из систем, он скопирует его с помощью uid, если вы не укажете обратное.
источник