Вопрос по macos, linux – Поддерживать права доступа к файлам и папкам внутри архивов

24

Я упаковываю и распространяю программу, созданную для Windows, Linux и Mac. Я планирую поместить файлы и папки в zip-архивы.

Если я установлю правильные разрешения для папок и файлов, а затем сожму их в zip-архив и распространю их, будут ли эти разрешения сохранены, когда пользователь извлечет их в системах Linux или Mac? Или они должны сами устанавливать разрешения?

Есть ли другой тип архива, такой как tar, rar и т. Д., Который может хранить разрешения? ajaybc
Нет возможности хранить разрешения в ZIP-файле кросс-платформенным способом. Eugene Mayevski 'Allied Bits
@itsbruce infozip - это пограничный случай, а не общее решение. Eugene Mayevski 'Allied Bits
@ EugeneMayevski 'EldoSCorp Это не совсем правильно. Я объяснил, как этого можно достичь с помощью утилит InfoZip, в своем ответе на другой вопрос на этом сайте:stackoverflow.com/questions/13185364/… itsbruce
Поскольку разрешения не являются переносимыми, трудно понять, как вы планируете их устанавливать, просто распаковывая один и тот же архив на нескольких платформах. Установщик (скрипт или приложение) будет более полезным для вашей цели. Eugene Mayevski 'Allied Bits

Ваш Ответ

2   ответа
3

Установщик ваш лучший вариант здесь. Позвольте мне объяснить немного лучше, почему.

Windows имеет следующие разрешения:

Modify
Read & Execute
Read
Write

Которые назначены на группы или имена пользователей,

Unix-системы имеют:

Read
Write 
Execute

Которые могут быть назначены владельцу, группе и другим.

Как видите, трудно сопоставить разрешения от одной системы к другой, поскольку файловые системы обрабатывают разрешения по-разному.

Однако некоторые zip-утилиты, такие как Info-Zip, поддерживают функции файловой системы на основе Unix, такие как идентификаторы пользователей и групп, права доступа к файлам и поддержка символических ссылок. Он также поддерживает разрешения файловой системы NTFS и будет пытаться преобразовать разрешения NTFS в разрешения Unix или наоборот при извлечении файлов. Это может привести к потенциально непреднамеренным комбинациям, например, Файлы .exe, создаваемые на томах NTFS с запрещенным разрешением для исполняемого файла. *

Если вы планируете распространять свою программу, установщик - действительно ваше лучшее решение.

* Из википедии:Zip (формат файла)

8

zip не хранит права доступа к файлам в архиве.

tar архивы сохранят права доступа к файлам в Linux и OS X. Я понятия не имею, что происходит в Windows. Если вы можете проверить что-то на Windows, и это работает, это, вероятно, ваш лучший выбор. Вероятно, это зависит от того, какой инструмент люди используют для распаковки архивов.

Другим вариантом может быть создание установщика, хотя существует несколько некоммерческих вариантов создания межплатформенных установщиков. Википедия имеетсписок.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededstackoverflow.com/questions/13185364/…
Error: User Rate Limit Exceededstackoverflow.com/questions/434641/…

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