problemas - cygwin establece permisos de archivo a 000
problemas permisos carpetas windows 7 (4)
Tengo una carpeta / cygwin / d / myfolder / Y cada vez que guardo archivos allí, desde cygwin, si hago un ls -la veo que a los archivos se les da el permiso 000. Eso realmente me causa un poco de problema mientras hago esto carpeta a mi servidor y ninguno de los archivos son accesibles. ¿Cómo puedo obtener los archivos para obtener automáticamente un permiso razonable?
Compruebe para asegurarse de que su umask está configurado correctamente con el comando umask. Si su umask es, por ejemplo, 0777, se resta de los permisos de los nuevos archivos y terminará con 000 permisos. Probablemente hay varias otras posibilidades a considerar más allá de eso.
Si su ID no está configurada correctamente en / etc / passwd y / etc / group, también puede hacer que ls muestre resultados inesperados. Compruebe los permisos de la carpeta. También verifique los permisos de Windows con el comando getfacl. Tal vez también compruebe el comando de montaje.
En la respuesta anterior, se propuso una solución:
Edite / etc / fstab y agregue esta línea al final del archivo:
none / cygdrive cygdrive binario, noacl, posix = 0, usuario 0 0
Y en esa respuesta hubo este comentario:
Cuando intento esto, todos mis archivos son -rw-r - r-- no importa lo que haga chmod (). No puedo marcar los archivos como ejecutables; simplemente vuelve a 0644. (umask == 0022)
Tuve este mismo problema, pero se manifestó en la incapacidad de ejecutar archivos por lotes de DOS (* .bat) al ejecutar Cygwin ksh o mksh. Me encontré con este sitio web: http://pipeline.lbl.gov/code/3rd_party/licenses.win/cygwin-doc-1.4/html/faq/ que contiene este consejo útil:
Tenga en cuenta que puede usar mount -x para obligar a Cygwin a tratar todos los archivos bajo el punto de montaje como ejecutables. Esto se puede utilizar para archivos individuales, así como directorios. Entonces Cygwin no se molestará en leer los archivos para determinar si son ejecutables.
Entonces, haga referencias cruzadas con esta página - https://cygwin.com/cygwin-ug-net/using.html#mount-table - con su consejo:
cygexec: trata todos los archivos debajo del punto de montaje como ejecutables de cygwin.
Agregué cygexec al cuarto campo de mi fstab. Esto lo hizo. Mi .bat ahora es ejecutable dentro de ksh / mksh, lo cual es necesario ya que estoy ejecutando un trabajo de Jenkins que llama a una pila de shell Korn 3 archivos de profundidad, sobre los que no tengo control modificable. Solo necesitaba el .bat para correr!
Actualización: la solución anterior no era exactamente lo que necesitaba, en pruebas adicionales. Como resultado, algunos ejecutables como javac y cl se comportan de manera extraña (las utilidades imprimirían su uso y saldrían). Creo que lo que necesitaba en lugar de ''cygexec'' era solo ''exec''. Como la misma página señala:
exec: trata todos los archivos debajo del punto de montaje como ejecutables.
En mi Win7, los archivos de PC solían ser ---------- + 1 David Ninguno 69120 17 de junio 13:17 mydoc.txt
Intenté todo lo anterior sin suerte Resultó que todavía tenía algunas entradas antiguas de montaje histórico en mi .zshrc. Las eliminé y ¡el problema de tu tío de Bob desapareció!
Lea las respuestas en este enlace: http://cygwin.1069669.n5.nabble.com/vim-and-file-permissions-on-Windows-7-td61390.html
La solución allí funcionó para mí también:
Edite / etc / fstab y agregue esta línea al final del archivo:
none /cygdrive cygdrive binary,noacl,posix=0,user 0 0
Luego cierre todos los procesos de Cygwin, abra una nueva terminal y ls -l en sus archivos nuevamente.
Explicación: de forma predeterminada, Cygwin utiliza las listas de control de acceso (ACL) del sistema de archivos para implementar permisos POSIX reales. Algunos programas o procesos nativos de Windows pueden crear o modificar las ACL, de modo que Cygwin calcula los permisos POSIX como 000. Con la opción de montaje noacl , Cygwin ignora las ACL del sistema de archivos y solo falsifica un subconjunto de bits de permiso según el atributo de solo lectura DOS.