Decomprimere il file mentre si ottengono le autorizzazioni corrette?


17

Ho decompresso un file sul mio server usando:

unzip filename

Tuttavia, ciò sembra aver causato tutti i file con autorizzazioni proprietario / gruppo di 0 0.

I file che ho caricato erano uno PHPscript software, quindi mi chiedo come impostare correttamente le autorizzazioni quando si decomprimono i file e su cosa dovrebbero essere impostati?

Risposte:


10

Zip non supporta il salvataggio della proprietà / autorizzazione dei file per quanto ne so. Puoi provare a impostare umask così decomprimere dovrebbe creare i file con queste autorizzazioni. Correre

umask 644

prima unzip.


In realtà era zippato con la finestra, mi dispiace.
Brett,

1
Non importa se è stato creato su Windows o * Nix. Zip non supporta ancora le autorizzazioni per i file unix. Indipendentemente da dove è stato creato.
lawl0r,

Sì, lo so .... ma hai detto che avrei potuto provare a impostare in umaskmodo da creare lo zip con queste autorizzazioni; ma non pensi di poterlo fare su Windows?
Brett,

Prima di decomprimere
lawl0r

8
@ lawl0r sì. Usa l'opzione -Z per vederli.
OrangeDog,

20

In realtà, alcune risposte qui non sono corrette. I file ZIP possono anche avere autorizzazioni per i file. (*) Puoi elencare le autorizzazioni dei file nel tuo file ZIP con:

unzip -Z

Forse lo strumento che hai usato per creare il file ZIP non ha memorizzato le autorizzazioni o non le ha memorizzate correttamente.

Quindi, se hai creato tu stesso il file ZIP , controlla lo strumento con cui hai creato il file ZIP. Forse c'è un modo per impostare le autorizzazioni prima di zippare (come con Maven), o conserva le autorizzazioni originali (ma funzionerebbe solo su un sistema che supporta le autorizzazioni - cioè non su Windows).

Se non hai creato tu stesso il file ZIP , l'unica possibilità è impostare le autorizzazioni corrette dopo aver decompresso, ad esempio con

chmod -R [permissions] [directory]

(*) Usiamo questa funzione in combinazione con il plugin assembly maven, dove puoi specificare il fileMode per i file che vanno nel file ZIP.


1
penso che tu abbia ragione, ma il modo in cui proponi la risposta non è giusto. dovresti concentrarti per fornire una buona risposta piuttosto che criticare in una nuova ...
Francisco Tapia,

2
@FranciscoTapia Ho aggiornato la mia risposta (con alcune cose che si potrebbero provare), ma lascerò il suggerimento che altre risposte sono errate lì dentro. Penso che sia importante.
David Tanzer,

1
UnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler.su Windows / mingw. Al momento non ho accesso al mio box Linux, ma anche lì -Z funziona. Comunque, grazie per il suggerimento!
David Tanzer,

3
@David Tanzer , la tua risposta è la migliore anche se non è accettata. In effetti, l'origine di un archivio (ad es. Windows, Linux, ecc.) È importante. Ho testato su Linux ( Zip 3.0 , UnZip 6.00 ). Una volta che un file viene inserito in un archivio, le autorizzazioni vengono salvate. E vengono ripristinati sul file estratto (ad es. Quando il file viene estratto su Linux). Ovviamente, le autorizzazioni non verranno applicate durante l'estrazione sulla finestra di Windows. Sarà davvero bello vedere decomprimere un interruttore specifico (come tar 's --no-same-permissions) che non conserva le autorizzazioni e rispetta umask durante l'estrazione.
flaz14,

1
Le autorizzazioni @DanielF sono lì solo se il programma di creazione le ha inserite lì, quindi se il tuo archivio è stato creato su Windows, zipinfo/ unzip -Zposso solo indovinarlo. Per vedere se ci sono le autorizzazioni, usa zipinfo -v/ unzip -Zve cerca "attributi di file esterni non MSDOS"; i due byte più significativi sono le autorizzazioni UNIX (in esadecimale, non ottale!) purché il "file system o sistema operativo di origine" sia UNIX.
Alex Shpilkin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.