Что делает-p tar (сохраните полномочия), флаг на самом деле сохраняет?

Что делает -p отметьте на самом деле сохраняют при создании и извлечении tarball? Действительно ли это rwx полномочия это сохраняет?

Когда я создал a htdocs/ tarball, принадлежавший корню, извлекая его к моей локальной машине, изменил владение от корня до моего пользователя.

22
задан 9 May 2014 в 18:42

3 ответа

Владение и полномочия являются двумя разными вещами. -p консервы флага полномочия . На *отклоняют системы, обычные пользователи не могут изменить принадлежность файла пользователю, который не является самостоятельно.

, Как объяснено здесь :

Только процессы с эффективным идентификатором пользователя, равным идентификатору пользователя файла или с соответствующими полномочиями, могут изменить владение файла. Если _POSIX_CHOWN_RESTRICTED в действительности для пути:

  • Изменение идентификатора пользователя ограничивается процессами с соответствующими полномочиями.

  • Изменение идентификатора группы разрешено к процессу с эффективным идентификатором пользователя, равным идентификатору пользователя файла, но без соответствующих полномочий, если и только если владелец равен идентификатору пользователя или (uid_t) файла-1 и группе, равно или эффективному идентификатору группы обработки вызовов или одному из его дополнительных идентификаторов группы.

объяснение позади этого было приятно объяснено @Gilles в этот Unix & ответ Linux:

причина этого ограничения состоит в том, что отдача файла другому пользователю может позволить плохим вещам произойти в редких, но все еще важных ситуациях. Например:

  • , Если системе включили выделенные дисковые пространства, Alice могла бы создать мировой перезаписываемый файл в соответствии с каталогом, доступным только ею (таким образом, никто больше не мог получить доступ к тому мировому перезаписываемому каталогу), и затем работайте показанный сделать тот файл принадлежавшим другому пользователю Bill. Файл тогда рассчитал бы под выделенным дисковым пространством Bill даже при том, что только Alice может использовать файл.
  • , Если Alice отдает файл Bill, нет никакой трассировки, что Bill не создал тот файл. Это может быть проблемой, если файл содержит недопустимые или иначе идущие на компромисс данные.
  • Некоторые программы требуют, чтобы их входной файл принадлежал конкретному пользователю для аутентификации запроса (например, файл содержит некоторые инструкции, что программа будет работать от имени того пользователя). Это обычно - не безопасный дизайн, потому что, даже если Bill создал файл, содержащий синтаксически корректные инструкции, он, возможно, не намеревался выполнить их в определенное время. Тем не менее, разрешению Alice создать файл с произвольным содержанием и взяли, это как вход от Bill может только сделать вещи хуже.

Так, даже при использовании tar --same-owner флаг необходимо будет все еще извлечь файлы как root для сохранения владения. Тот флаг идет по умолчанию для root, поэтому что Вы хотите:

sudo tar xpf foo.tgz
19
ответ дан 16 November 2019 в 12:11

Чтобы сохранить владельца, выполненного как корень или использовать - флаг того-же-владельца вместе с-p, отмечают при извлечении.

4
ответ дан 16 November 2019 в 12:11

Существует еще 2 опции для tar, которые интересны:

--same-owner
       try extracting files with the same ownership as exists in the ar‐
       chive (default for superuser)

--no-same-owner
       extract files as yourself (**default for ordinary users**)

2-й является значением по умолчанию, таким образом, можно добавить --same-owner для сохранения пользователя. Вероятно, необходимо будет сделать это с sudo.

, Помимо который: это будет - только работать над системами тот POSIX поддержки. И операционные системы кроме Ubuntu не могли бы иметь этих 2 опций (они не являются стандартными).

9
ответ дан 16 November 2019 в 12:11

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

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