Как проверить права в zip на RHEL?

0

Я очень мало знаком с RHEL, и был очень удивлен, обнаружив это unzip -lи unzip -lvне включив в него права доступа к файлам. Я вижу, что извлечение файлов в конечном итоге восстанавливает разрешения, но мне интересно, есть ли способ проверить разрешения без разархивирования.

Как вы можете видеть из взаимодействия командной строки ниже, оно exявляется исполняемым и nonexне является, и которое unzipвосстанавливает разрешения для обоих, но я хочу видеть разрешения без разархивирования

/tmp> ls -lgG *ex
-rwxrwxr-x 1 0 Feb 17 04:26 ex
-rw-rw-r-- 1 0 Feb 17 04:26 nonex
/tmp> zip -qq  perms *ex
/tmp> unzip -l perms.zip
Archive:  perms.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  02-17-2015 04:26   ex
        0  02-17-2015 04:26   nonex
---------                     -------
        0                     2 files
/tmp> unzip -lv perms.zip
Archive:  perms.zip
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
       0  Stored        0   0% 02-17-2015 04:26 00000000  ex
       0  Stored        0   0% 02-17-2015 04:26 00000000  nonex
--------          -------  ---                            -------
       0                0   0%                            2 files
/tmp> unzip -qq -d perms perms.zip
/tmp> ls -lgG perms
total 0
-rwxrwxr-x 1 0 Feb 17 04:26 ex
-rw-rw-r-- 1 0 Feb 17 04:26 nonex
Жалкая переменная
источник

Ответы:

0

Вы можете использовать zipinfoдля отображения разрешений. Имейте в виду, что в зависимости от того, где создается архив, разрешения могут не отражать фактические разрешения исходной системы (это особенно верно, если вы извлекаете архив, созданный в Windows).

Вот фрагмент из документации, в zipinfoкоторой подробно описан формат вывода, основанный на знакомом ls -l(длинном) формате листинга. Первое поле детализирует разрешения.

-rw-rws--- 1.9 unx 2802 t- defX 11-Aug-91 13:48 perms.2660

Последние три поля - это дата и время изменения файла и его имя. Случай имени файла уважается; Таким образом, файлы MS-DOS PKZIP всегда пишутся с большой буквы. Если файл был заархивирован с сохраненным именем каталога, это также отображается как часть имени файла.

Второе и третье поля указывают, что файл был заархивирован под Unix с версией 1.9 zip. Поскольку это происходит из Unix, права доступа к файлам в начале строки печатаются в формате Unix. Несжатый размер файла (2802 в этом примере) является четвертым полем.

Пятое поле состоит из двух символов, каждый из которых может принимать несколько значений. Первый символ может быть «t» или «b», указывая, что zip считает файл текстовым или двоичным, соответственно; но если файл зашифрован, zipinfo отмечает этот факт, используя заглавные буквы («T» или «B»). Второй символ может также принимать четыре значения, в зависимости от того, существует ли расширенный локальный заголовок и / или «дополнительное поле», связанное с файлом (полностью объяснено в APPNOTE.TXT PKWare, но в основном аналогично прагмам в ANSI C - они предоставляют стандартный способ включения нестандартной информации в архив). Если ничего не существует, символ будет дефисом ('-'); если есть расширенный локальный заголовок, но нет дополнительного поля, 'l'; если наоборот, «х»; и если оба существуют, «X». Таким образом, файл в этом примере (вероятно) является текстовым файлом, не зашифрован и не имеет ни дополнительного поля, ни расширенного локального заголовка, связанного с ним.

Бурхан Халид
источник