¿Descomprimir el archivo y obtener los permisos correctos?

17

Descomprimí un archivo en mi servidor usando:

unzip filename

Sin embargo, esto parece haber causado que todos los archivos tengan permisos de propietario / grupo 0 0.

Los archivos que cargué eran una PHPsecuencia de comandos de software, por lo que me pregunto cómo configuro los permisos correctamente al descomprimir los archivos y en qué deben configurarse.

Brett
fuente

Respuestas:

10

Zip no admite guardar la propiedad / permiso del archivo hasta donde yo sé. Puede intentar configurar umask para que descomprimir cree los archivos con estos permisos. correr

umask 644

antes unzip.

lawl0r
fuente
En realidad estaba comprimido con ventana, lo siento.
Brett
1
No importa si se creó en Windows o * nix. Zip todavía no admite permisos de archivos Unix. Independientemente de dónde fue creado.
lawl0r
Sí, lo sé ... pero dijiste que podía intentar configurarlo umaskpara que creara el zip con estos permisos; pero no creo que pueda hacer eso en windows?
Brett
Antes de descomprimir
lawl0r
8
@ lawl0r sí, lo hace. Use la opción -Z para verlos.
OrangeDog
20

En realidad, algunas respuestas aquí no son correctas. Los archivos ZIP también pueden tener permisos de archivo. (*) Puede enumerar los permisos de los archivos en su archivo ZIP con:

unzip -Z

Quizás la herramienta que usó para crear el archivo ZIP no almacenó los permisos o no los almacenó correctamente.

Entonces, si creó el archivo ZIP usted mismo , verifique la herramienta con la que creó el archivo ZIP. Quizás haya una manera de establecer permisos antes de comprimir (como con maven), o conserva los permisos originales (pero eso solo funcionaría en un sistema que admita permisos, es decir, no en Windows).

Si no creó el archivo ZIP usted mismo , su única posibilidad es establecer los permisos correctos después de descomprimir, por ejemplo con

chmod -R [permissions] [directory]

(*) Utilizamos esa función en combinación con el complemento de ensamblaje maven, donde puede especificar el FileMode para los archivos que van al archivo ZIP.

David Tanzer
fuente
1
Creo que tienes razón, pero la forma en que propones la respuesta no es correcta. debes concentrarte para dar una buena respuesta que criticar en una nueva ...
Francisco Tapia
2
@FranciscoTapia Actualicé mi respuesta (con algunas cosas que uno podría probar), pero dejaré la pista de que otras respuestas son incorrectas allí. Creo que es importante.
David Tanzer
1
UnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler.en Windows / mingw. Actualmente no tengo acceso a mi caja de Linux, pero allí -Z también funciona. De todos modos, gracias por la pista!
David Tanzer
3
@David Tanzer , su respuesta es la mejor incluso si no es aceptada. De hecho, el origen de un archivo (por ejemplo, Windows, Linux, etc.) es importante. He probado en Linux ( Zip 3.0 , UnZip 6.00 ). Una vez que un archivo se coloca en un archivo, se guardan los permisos. Y se restauran en el archivo extraído (por ejemplo, cuando el archivo se extrae en Linux). Obviamente, los permisos no se aplicarán al extraer en el cuadro de Windows. Será realmente genial ver en descomprimir un interruptor específico (como tar 's --no-same-permissions) que no conserva los permisos y respeta umask mientras extrae.
flaz14
1
@DanielF Los permisos solo están ahí si el programa de creación los puso allí, por lo que si su archivo se creó en Windows, zipinfo/ unzip -Zsolo puedo adivinar. Para ver si los permisos están ahí, use zipinfo -v/ unzip -Zvy busque "atributos de archivos externos que no sean MSDOS"; Los dos bytes más significativos son los permisos UNIX (¡en hexadecimal, no octal!) siempre que el "sistema de archivos o sistema operativo de origen" sea UNIX.
Alex Shpilkin