2012-05-24 3 views
24

sto confezionamento e distribuzione di un programma che ho fatto per Windows, Linux e Mac. Ho intenzione di mettere i file e le cartelle negli archivi zip.Mantenere i permessi di file e cartelle all'interno degli archivi

Se imposto le autorizzazioni corrette per cartelle e file e quindi compresso in zip e ridistribuirle, tali autorizzazioni verranno mantenute quando l'utente le estrae in sistemi Linux o Mac? O devono impostare le autorizzazioni da soli?

+0

Non c'è modo per memorizzare i permessi a file ZIP in modo cross-platform. –

+0

C'è qualche altro tipo di archivio come tar, rar ecc. Che può memorizzare permessi? – ajaybc

+0

Dal momento che i permessi non sono portatili, è difficile capire come si intende impostare loro da tanto scompattare lo stesso archivio su più piattaforme. Il programma di installazione (script o applicazione) sarebbe più utile per il tuo obiettivo. –

risposta

8

zip non memorizza i permessi dei file in archivio.

tar archivi verranno preservare i permessi dei file su Linux e OS X. non ho idea di quello che succede su Windows. Se riesci a testare le cose su Windows e funziona, probabilmente è la soluzione migliore. Probabilmente dipende da quale strumento le persone usano per decomprimere gli archivi.

Un'altra opzione sarebbe quella di creare un programma di installazione, anche se ci sono alcune opzioni non commerciali per la creazione di installatori multipiattaforma. Wikipedia ha a list.

+5

Non del tutto vero: http://stackoverflow.com/questions/13185364/how-to-assign-execute-permission-to-a-sh-file-in-windows-to-be-executed-in-linu – itsbruce

+2

anche https: // StackOverflow.it/questions/434641/how-do-i-set-permessi-attributi-su-un-file-in-un-zip-file-using-pythons-zip/434689 # 434689 – offby1

+11

Zip può memorizzare i permessi dei file Unix usando il campo "attributi esterni" all'interno dell'intestazione ZIP. Se non è compresso con lo strumento giusto su un sistema unix, i file manterranno le autorizzazioni. Se è disattivato su Windows, i file perderanno le autorizzazioni. Mi chiedo come questa risposta avrebbe potuto essere selezionata come quella giusta e ottenere 10+ punti. –

3

Un programma di installazione è la scelta migliore qui. Lasciami spiegare un po 'meglio perché.

Windows dispone di queste autorizzazioni:

Modify 
Read & Execute 
Read 
Write 

che sono assegnati a Gruppi o nomi utente,

sistemi basati su Unix hanno:

Read 
Write 
Execute 

che possono essere assegnati al proprietario, il gruppo e gli altri .

Ha potete vedere, la sua difficile mappa i permessi da un sistema a un altro, dal momento che i filesystem di gestire i permessi in modo diverso.

Tuttavia, alcune utility zip come Info-Zip supporta le funzioni del file system basati su Unix, come ad esempio gli ID utente e di gruppo, i permessi dei file, e il supporto per i collegamenti simbolici. Supporta anche le autorizzazioni del filesystem NTFS e tenterà di tradurre dalle autorizzazioni NTFS alle autorizzazioni Unix o viceversa durante l'estrazione dei file. Ciò può comportare combinazioni potenzialmente involontarie, ad es. i file .exe creati su volumi NTFS con il permesso negato eseguibile. *

Se si prevede di distribuire il programma, un programma di installazione è davvero la soluzione migliore.

* Da wikipedia: Zip (file format)