CURSO DESDE 0 DE GNU/LINUX. Versión 2
Entrega 7. ¡Permiso!
% cd ~god
Unknown user: god.
Los permisos de ficheros.
Como Linux es un sistema multiusuario, debemos proteger los ficheros de la manipulación por parte de otros. Linux nos proporciona para esto los conocidos permisos de ficheros. Sin más acordaos de 'ls -l':
[matados2k@fortaleza curso]$ ls -l
total 740
-rw-rw-r-- 1 matados2k matados2k 30 jun 4 16:07 hola_holita
-rw-rw-r-- 1 matados2k matados2k 75 jun 4 16:27 lista_compra
-rw-rw-r-- 1 matados2k matados2k 75 jun 4 18:10 nueva_lista
-rw-r--r-- 1 matados2k matados2k 740199 may 19 17:47 perro
[matados2k@fortaleza curso]$ |
En la entrega 3 ya quedamos claro que la primera parte (-rw-rw-r--) no la explicaría hasta que no llegara a esta entrega.
Los permisos de ficheros los podemos establecer en 3 niveles, permisos del propietario (usuario o user), permisos para el grupo (group) y permiso para el resto (others).
Cada fichero es del usuario que lo crea o bien los obtiene porque alguien le ha cambiado la propiedad (por ejemplo, root puede hacer esto). Sólo el propietario del fichero y el superusuario (root) pueden cambiar los permisos de los ficheros.
Cada usuario puede pertenecer a uno o a varios grupos de usuarios, y es a los usuarios que están dentro del mismo grupo que el propietario del fichero a quienes afectan los permisos de grupo. Y evidentemente los permisos para el resto afectan a todos los demás.
Y a la vez de todo esto hay 3 tipos de permisos: permisos de lectura, permisos de escritura y permiso de ejecución.
Interpretando los permisos.
Bien, como ya hemos visto con la opción '-l' de 'ls' podemos observar los permisos que tiene cada fichero asignado, siendo una cadena de 10 caracteres (por ejemplo -rw-rw-r--). El primer carácter no lo explicaremos puesto que ya lo hicimos en la entrega 3.
Con esto ya nos quedan 9, que lo dividiremos en partes de 3: el primero para la lectura, el segundo para la escritura y el tercero para la ejecución (si sois avispados ya os habréis dado cuenta de que en Linux no se ejecutan los ficheros por tener un tipo de extensión, si no por tener o no este permiso). Y el orden es el mismo: primero los 3 de usuario, los 3 de grupo y los 3 de los otros (buena película ;) ). Un '-' indica que ese permiso no está dado.
Para que quede claro veamos unos ejemplos:
-rw-rw-r-- El usuario puede leer y escribir, el grupo puede leer y escribir y el resto solo leer.
---------- Nadie puede hacer nada.
-rwxrwxrwx Todos pueden hacer todo.
-rwx------ El usuario puede hacer todo.
---x--x--x El fichero solo puede ejecutarse por todos.
-rwxr----- El usuario puede hacerlo todo y el grupo solo leer |
Depende... ¿de qué depende?
Hay que indicar que los permisos de los ficheros dependen de los permisos en sí del directorio que los contiene, y que de nada sirve tener '-rwxrwxrwx' en un fichero si el directorio sólo tiene permisos '-r--------', con lo cual sólo podríamos leerlo y nada más. Incluso si el directorio no tuviera permiso de lectura para nadie, no podríamos ni siquiera listar el contenido del directorio, para ver esto con un usuario normal intentad haced lo siguiente:
[matados2k@fortaleza curso]$ ls /root
ls: /root: Permiso denegado
[matados2k@fortaleza curso]$ |
Según la configuración de vuestro sistema puede que os deje, si es así seguramente no tendréis una buena seguridad en vuestro sistema.
Como curiosidad a esto, por ejemplo, podéis crear un buzón donde todos pueden entrar los ficheros que quieran pero sólo tu puedes verlo y manipularlo, sería algo así como '-rwx-w--w-'.
Cambiando permisos.
De momento sólo veremos cómo cambiar los permisos a los ficheros, este comando es:
chmod [opciones] modo fichero
Como opción únicamente comentaremos '-R' que hace que el cambio de permisos sea recursivo, por ejemplo, para dar los permisos a todos los ficheros de un directorio y sus descendientes.
Para el modo de momento sólo vamos a ver la forma amigable de hacerlo, ya que se puede hacer con un número en octal. Para esto describiremos el modo como {a,u,g,o}{+,-}{rwx} donde:
a Indica que se aplicará a todos.(all)
u Indica que se aplicará al usuario.(user)
g Indica que se aplicará al grupo.(group)
o Indica que se aplicará a otros.(other)
+ Indica que se añade el permiso.
- Indica que se quita el permiso.
r Indica permiso de lectura.
w Indica permiso de escritura.
x Indica permiso de ejecución. |
Así que primero indicamos a quien vamos aplicar el permiso, y después qué permiso pondremos o quitaremos. Vemos ejemplos del modo:
a+r Permisos de lectura para todos.
+r Igual que antes, si no se indica nada se supone 'a'.
og-x Quita permiso de ejecución a todos menos al usuario.
u+rwx Da todos los permisos al usuario.
o-rwx Quita los permisos a los otros. |
Con todo esto sólo queda hacer un ejemplo de la ejecución de 'chmod':
[matados2k@fortaleza curso]$ ls -l
total 740
-rw-rw-r-- 1 matados2k matados2k 30 jun 4 16:07 hola_holita
-rw-rw-r-- 1 matados2k matados2k 75 jun 4 16:27 lista_compra
-rw-rw-r-- 1 matados2k matados2k 75 jun 4 18:10 nueva_lista
-rw-r--r-- 1 matados2k matados2k 740199 may 19 17:47 perro
[matados2k@fortaleza curso]$ chmod a+rwx hola_holita
[matados2k@fortaleza curso]$ ls -l
total 740
-rwxrwxrwx 1 matados2k matados2k 30 jun 4 16:07 hola_holita
-rw-rw-r-- 1 matados2k matados2k 75 jun 4 16:27 lista_compra
-rw-rw-r-- 1 matados2k matados2k 75 jun 4 18:10 nueva_lista
-rw-r--r-- 1 matados2k matados2k 740199 may 19 17:47 perro
[matados2k@fortaleza curso]$ |
Sólo comentar que con 'chmod' podemos hacer aún más, pero eso lo veremos cuando veamos la gestión de usuarios.
Agradecimientos:
· Revisión del documento: karuchi (Carolina García).
Página oficial y dominio de mi propiedad http://matados2k.es
Matados'2k Usuario y moderador de foro.noticias3d.com
Matados'2k Usuario y moderador de www.sinuh.org
matados2k (arroba) gmail (punto) com
Este documento está sometido a la licencia de creative commons en su variante “Reconocimiento-NoComercial-SinObraDerivada 2.1 España” . Es de agradecer que se comunique al autor el uso de este documento en otro medio y se debe incluir de forma obligatoria este recuadro y los agradecimientos. |
Copyright © por Computer Facil ,Derechos Reservados.