viernes, 14 de mayo de 2010

Freaking Permisos en Ubuntu y Downloader4X

Bueno algunos sabrán que llevo rato peléandome con samba y demás cosas de la red de mi casa, y hoy fue el segundo encuentro, solo que... el problema no era con ella.

Y así, érase una... hace 10 minutos,


.::Leer Entrada Completa::.

que quería pasar a mi computadora un capítulo de una serie que estoy viendo, a través de la red de mi casa. Y oh sorpresa! "Error al copiar el archivo" en detalles me decía "Premiso Denegado", y bueno, ese dichoso mensaje lo primero que me hace pensar es "eh? necesito ser root o k pedo?" [Root - Superusuario - El jefe de jefes - Hay papi ya llegaste dice la compu].

.::Ver mis Aventuras encontrando al culpable::.

Pero o sea, lo estoy copiando desde mi compu, ya hace rato que en las dos computadoras tengo el mismo smb.conf (archivo de configuración del servicio de Red de Windows para Linux) para quitarme de problemas. Me la pasé revisando y revisando el archivo de configuración para ver si había algo diferente que me haría que necesitara un tipo de autentificación, pero no... todo igual.

Como en esa computadora le he instalado y desinstalado varias cosas acerca de samba, entonces probé en cotejar los paquetes instalados en el gestor synaptic (es un programa con el que seleccionas el programa que quieres, le das aplicar, y te lo baja e instala automáticamente... ahí mismo puedes ver los programas que por así decirlo, están instalados en tu sistema... nice verdad?). Intenté dejarlo igual que la mía (que funciona perfectamente en red con otras computadoras en la escuela y en cualquier lugar).... y me metí en más problemas XD. De repente la otra computadora dejó de ser parte de la red. Pero bueno como pude recordar lo que desinstalé, no tardé en regresar todo a la normalidad.

Aún con ese viaje, simplemente no me permitía copiar archivos a mi computadora, hasta que intenté copiar otro archivo en otra carpeta y ¡voilà! se pasó sin problemas... "Hmm, entonces el problema puede que sean las carpetas"

Recordé que el mensaje me decía "Permiso denegado", entonces de alguna manera era diferente esa carpetas de las demás.
Me puse a revisar sus propiedades, sus permisos (en click derecho->propiedades =P), comparando esa carpeta con los demás, y nadaaa todo igual. Era raro, no era la carpeta... y empecé a revisar los archivos. Ahí estaba el pedo =S, los archivos de alguna manera se creaban para que solo los pudiera leer y modificar el usuario del equipo (y no visitantes extraterrestres como yo desde mi otra computadora).

Verán en linux cada archivo y carpeta tienen permisos, esto como cuestiones de seguridad (como podrán haber notado... si esos archivos fueran confidenciales, se hubieran salvado de que no los revisara alguna persona amante de los chismes que estuviera en nuestra red local).

Y existen 3 tipos de permisos y tres grupos principales de usuarios (o sea, tipos de individuos que quieran acceder al archivo).
* Lectura

* Escritura
* Ejecución [Del tipo cuando quieres correr un programa]

Y los 3 grupos de usuarios son:

* El propietario [quien creó el archivo]

* El grupo al que pertenece el propietario [yep, pueden haber grupos... amigos que vienen a mensear un rato mientras se comen un sandwich, programitas que quieren jugar con nuestros archivos, personas chismosas que están en la red local, etc...]
* Cualquier otro usuario [como yo accedía desde la red local, y el creador del archivo obviamente no lo creó a través de la red (por lo tanto no pertenece al grupo de "redes" por asi decirlo), así que en este grupo de usuarios caía yo]


Los permisos de los archivos al igual de las carpetas pueden verlos con click derecho->propiedades->permisos.
Notarán que cada grupo puede tener toda combinación posible de los 3 tipos de permisos. Por la consola, pueden ver los permisos con el parámetro -l del comando ls (comando "listar" le llamo). O sea, escribiendo ls -l .
Del lado izquierdo se podrán leer los permisos como un conjunto de letras, y se agrupan según el orden que escribí arriba.


Y bueno, ¿solución parcial? Cambiarle los permisos.
Los permisos estaban especificados como "Lectura y Escritura" para el Propietario y "Nada" en los otros dos grupos, en los otros grupos le cambié a "Lectura Solamente".
Y listo, pude copiar sin problema el capítulo a mi computadora ^_^.

La pregunta que quedaba flotando era: ¿por qué solo estos archivos tenían permisos diferentes?
Tan tan taaaaan...

Downloader 4 X, ó también llamado "d4x", de alguna manera creaba así los archivos...


Y bueno un paseo por la ventana de propiedades del programa lo arregló todo.

En la sección Descargas, viene una linea que dice "Permisos por defecto del archivo local". La clave claro está era la palabra "Permisos".

El chiste de este parámetro es que no viene así bonito y comprensible como "Solo Lectura para los otros weyes y el propietario puede hacer con él lo que se le relinchen sus esferas reproductivas", nooo, viene en formato "Octal", o sea, un número representando 3 variables.


.::Ver la explicación sobre como entender ese dichoso número::.

¿Recuerdan que les dije que había tres tipos de permisos y tres grupos principales?

Bueno, si ponemos eso todo en una linea en orden, quedaría así:

(Lectura-Escritura-Ejecución)Propietario (Lectura-Escritura-Ejecución)Grupo del Propietario (Lectura-Escritura-Ejecución)Otros

Para hacerlo más corto podemos representarlo con letras, y escribirlo de corrido.
L-E-Ej-L-E-Ej-L-Ej A fin de cuentas ya sabemos el orden en que van y que significan las letras.

Bueno si activado significara un 1, y desactivado (o NoPermitido) significara un 0. Podríamos representar los permisos con números. Por ejemplo "Lectura y Escritura" por parte del Propietario, Lectura de parte del grupo y para todos los demás.
Podría quedar así:

1-1-0-1-0-0-1-0-0 Más corto no? Aunque menos comprensible.

Bueno cuando hacemos el comando ls -l en la consola vienen en inglés las siglas y lo representan de esta manera
-rw-r--r-- , algo más sencillo pero siguiendo la misma técnica. Como supondrán los espacios vacios indican "No permitido". En otras palabras, lo que está escrito es lo que se puede =P.

Bueno, para hacerlo aún más corto (y es a lo que viene la representación octal), cada grupo de tres, lo representamos con un número.

0-0-0 = 0 (No se puede Leer, ni Escribir, ni Ejecutar)
0-0-1 = 1 (Se puede Ejecutar)
0-1-0 = 2 (Se puede Modificar[Escritura])

0-1-1 = 3 (Se puede Modificar y Ejecutar)
1-0-0 = 4 (Se puede Leer)

1-0-1 = 5 (Se puede Leer y Ejecutar)

1-1-0 = 6 (Se puede Leer y Modificar)
1-1-1 = 7 (Se puede Leer, Modificar y Ejecutar)


Así que el ejemplo anterior lo podríamos representar como 644. (Por cierto... ¿notan que solo hay 8 valores posibles?, bueno, por eso se llama sistema octal)


Y bueno... qué decía en la línea "Permisos por defecto del archivo local"?
Pues 600. O sea: rw- --- --- = El propietario puede leerlo y modificarlo, el grupo y las otras personas no pueden hacer ni madres con él.


¿Qué hacer? Cambiarlo, por "El propietario puede hacer lo que se le dé la gana y cualquier otra persona puede leerlo cuantas reputas veces quiera" (sorry llevo días con este problema XD).
Que sería un 644... rw- r-- r--
(quiiiiuubule... ahora ya saben leer valores octales, y de hecho binario también)

Bueno el chiste es que decía 600 y lo cambié por 644, le di aplicar y zan se acabó =D.
Bajé un archivo como prueba con es programa, y desde la red pude copiarlo a mi compu, sin necesidad de cambiarle los permisos manualmente en la otra compu.


=DDD


Bueno si les interesa aprender más sobre permisos en linux, les dejo esta página con la que me informé. http://www.zzee.com/solutions/linux-permissions.shtml

Y que tengan un Feliz Networking!

No hay comentarios:

Publicar un comentario en la entrada