Распространяю упакованные файлы в формате ZIP. Для создания я использую:
zip -r файлы distr.zip /
При расширении для других системных файлов UNIX сохраните их разрешения, как они были, когда я их упаковал. Я не хочу хранить информацию о разрешениях.
У меня вопрос: возможно ли это сделать? Я использую info-zip 3.0
Проблема в том, что в моей системе я использую umask 0002, и файлы доступны для записи для групп. Однако при расширении в других системах разрешение на запись для групп не требуется. Я мог бы удалить права на запись для группы, но тогда это не сработало бы в моей системе.
Я не могу найти подходящий вариант управления разрешениями при распаковке
Однако, используя tar, есть возможность --no-same-permissions что может помочь, на странице руководства говорится:
--no-same-permissions
apply the user's umask when extracting permissions from the archive
Это поможет вам?
В качестве альтернативы, если вы хотите использовать zip-файл, вы можете попробовать создать его с помощью другой программы. Например, Apache Ant дает вам полный контроль над разрешениями файлов и каталогов, которые он заархивирует - http://ant.apache.org/manual/Types/zipfileset.html есть подробности. Например, вы можете сделать что-то вроде:
<zip destfile="dist.zip">
<zipfileset dir="dist" filemode="664" dirmode="755" />
</zip>