Назад | Перейти на главную страницу

Создать ZIP-архив без сохранения разрешений?

Распространяю упакованные файлы в формате 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>