
Soy nuevo en Cygwin, ssh y estoy jugando con los permisos de archivos y tengo un problema. En la computadora WORKER1, estoy intentando realizar ssh en la computadora WORKER2 y luego ejecutar un archivo .sh en WORKER1 desde allí. Por lo que puedo ver en el resultado a continuación, ls -l muestra que debería haber permiso para hacer todo (sé que esos son malos permisos, pero me estaba volviendo loco tratando de descubrir por qué recibía este error de permiso) .
root@Worker1 ~
$ ssh WORKER2
Last login: Tue Jan 31 10:51:54 2012 from worker1
root@Worker2 ~
$ cd //WORKER1/Users/Public/pMatlab/MatlabMPI/Examples/MatMPI
root@Worker2 //WORKER1/Users/Public/pMatlab/MatlabMPI/Examples/MatMPI
$ sh Dos_Commands.WORKER2.1.sh
sh: Dos_Commands.WORKER2.1.sh: Permission denied
root@Worker2 //WORKER1/Users/Public/pMatlab/MatlabMPI/Examples/MatMPI
$ ls -l
total 28
-rwxrwxrwx+ 1 Administrators None 2 Jan 31 11:01 Dos_Commands.WORKER1.0
-rwxrwxrwx+ 1 Administrators None 127 Jan 31 11:01 Dos_Commands.WORKER2.1
-rwxrwxrwx+ 1 Administrators None 250 Jan 31 11:01 Dos_Commands.bat
-rwxrwxrwx+ 1 Administrators None 636 Jan 31 11:01 MPI_COMM_WORLD.mat
-rwxrwxrwx+ 1 Administrators None 97 Jan 31 11:01 MatMPIdefs1.m
-rwxrwxrwx+ 1 Administrators None 199 Jan 31 11:01 p0_p0_t10000_buffer.ma
-rwxrwxrwx+ 1 Administrators None 199 Jan 31 11:01 p0_p1_t10000_buffer.ma
-rwxrwxrwx+ 1 Administrators None 0 Jan 31 11:01 p0_p1_t10000_lock.mat
Ambas computadoras ejecutan Windows 7 de 64 bits y yo estoy ejecutando la última versión de Cygwin y OpenSSH en cada una. El sshd que se ejecuta en WORKER2 también es el de Cygwin. Al instalar sshd, la única forma en que pude lograr que funcionara correctamente fue responder "no" a la separación de privilegios y "sí" a la instalación como servicio cuando ejecutaba ssh-host-config. Estoy usando autenticación RSA de clave pública. Intenté montar //WORKER1/Users/Public/pMatlab/ como una unidad de red y acceder a él de esa manera, pero eso tampoco ayudó. ¿Alguna idea de lo que podría estar yendo mal? ¡Gracias!
EDITAR: Olvidé mencionar que la configuración de uso compartido de mi red en Windows está configurada para permitir todo lo que puedo ver. Además, mi carpeta Pública y las carpetas que contiene parecen estar configuradas como de solo lectura (en el menú de clic derecho->Propiedades), aunque los archivos que contiene no lo están. Intentar cambiar esto en el menú Propiedades no hace nada; cuando desactivo el modo de solo lectura, vuelve a activarse cuando vuelvo a abrir el menú Propiedades. Intenté cambiar esto ejecutando attrib -r C:\Users\Public en cmd.exe pero tampoco funcionó.
Finalmente, no recibo un error de permiso denegado cuando ejecuto el archivo .sh localmente, cuando intento acceder a él desde la GUI de Windows en la computadora WORKER2, o cuando hago ssh desde WORKER2 hacia sí mismo y luego intento acceder a él. El error de permiso solo aparece cuando hago ssh de WORKER1 a WORKER2 y luego intento acceder al archivo en WORKER1 desde allí.
Edición final: problema resuelto. ¡Resultó que la carpeta estaba cifrada! No tengo idea de por qué. Por alguna razón, así salió del archivo zip.
Respuesta1
¡Bienvenido al nuevo y maravilloso mundo Unix de 1989!
Esas amables personas de TRUSIX han definido, solo este año, una extensión del ls
comando para indicar visualmente cuando la rwxrwxrwx
información de permisos no es en realidad toda la historia. Esa extensión es un +
carácter que sigue a las banderas de permiso. Como puede ver, su ls
salida tiene +
caracteres por todas partes. Eso significa que sus archivos tienen estos novedososlista de control de acceso discrecionalcosas que tanto entusiasman a la gente de TRUSIX. Como tal, su acceso a los archivos esnonecesariamente lo que se puede deducir solo de los nueve indicadores de permisos.
Para compensar estas limitaciones de las herramientas Unix de estilo antiguo frente a las ACL de estilo nuevo, la gente de TRUSIX también ha creado un par de comandos nuevos, getacl
y setacl
. El primero se utiliza para observar esas ACL. Escucho murmullos que la gente podría preferirgetfacl
ysetfacl
como nombres. Y corre el rumor de que la versión 3 de OS/2 de Microsoft e IBM que está en la mesa de dibujo podría eventualmente terminar con comandos nombrados cacls
y xcacls
para mirar las ACL que seránaun mejorque getfacl
en su sistema operativo de "Nueva Tecnología", porque no los presentarán a través de una lente Unix de 3 bits sino más bien como son realmente en todos susderechos-estándar y-específicos drctpoxfew
ambas cuentasy-Gloria del nombre de la máquina.
Esta idea seguramente se extenderá como la pólvora en el mundo Unix del que seguramente todos terminarán siendo parte en la década de 1990. Es muy probable que dentro de 20 años nueve bits de permisos parezcan obsoletos y pasados de moda, las ACL sean la norma yIncluso los fuddy-duddies que todavía miran nueve banderas de permisos sabrán de ellos.. ☺
Otras lecturas
- Craig Rubin (18 de agosto de 1989). Justificación para seleccionar funciones de lista de control de acceso para el sistema Unix. NCSC-TG-020-A. Editorial DIANE. ISBN 9780788105548.
- Corporación Microsoft (8 de mayo de 2008).El usuario no puede acceder a un archivo o carpeta pero debe tener permiso. TechNet.