sábado, 4 de noviembre de 2017

Permisos en linux 1

En este tutorial quiero hablaros un poco sobre lo que conozco en cuanto a los permisos en linux.

Introducción

En linux, los archivos y los directorios pueden ser leídos, modificados y ejecutados por tres grandes "grupos".
Estos grupos serían el propietario, el grupo y otros. Por otros se entiende cualquiera que no sea propietario ni esté en el grupo del fichero/directorio.

Permisos básicos

Siendo un usuario normal (no administrador), voy a crear un archivo y mirar sus permisos.
Si crease como administrador, tanto el usuario como el grupo serian root.






La parte que nos interesa es la última de todas: -rw-rw-r--

El primer carácter (-), indica si es un directorio (d), un archivo (-), un link (l), un archivo de bloques especiales (b), un archivo de caracteres especiales (c) o un archivo especial de tubería (p), en este caso es un fichero.

Los siguientes 9 caracteres van separados de 3 en 3, los 3 primeros son los permisos del propietario, los siguientes del grupo y los últimos de otros, se podría resumir en esta imagen.



El carácter r significa lectura, el carácter w escritura, y el carácter x ejecución.
Podemos ver entonces, que el propietario de Archivo_normal (dns-server) puede leer y escribir en él (al no ser un programa, no tiene la x ya que no hay nada que ejecutar).
El grupo tiene los mismos permisos que propietario, pero otros solo puede leer y no modificar.


Asignación de permisos

Hay dos formas de asignar permisos, una en la que tienes que saber una tabla de memoria (o tenerla a mano) y la otra, más sencilla pero más larga. Aunque ambas son igual de válidas.

La primera forma es indicar que permisos queremos ponerle a cada uno (o a todos a la vez).
Usando el comando $ chmod [OPCIONES] [PERMISOS] fichero/directorio .
Donde opciones, indicamos a quién le damos o quitamos permisos (u, g, o), y donde permisos indicamos si quitamos o ponemos (+ para añadir y - para quitar) y que permisos (r, w, x).


Como podemos ver en la imagen, el usuario ha perdido el permiso para modificar Archivo_normal.
Eso se debe a que al hacer chmod u-w Archivo_normal, hemos dicho que a usuario se le "reste" el permiso de modificar. Funciona así con grupo y con otros.



Si en vez de usar u, g, o en chmod usamos a, estamos diciendo all (todos). También podemos poner un permiso al lado del otro para que se aplique, en vez de hacer un chmod para cada permiso, podemos escribir +rwx para añadir los tres a la vez.

Otra manera de conseguir el mismo efecto que usando la opción a, es añadiendo los tres grupos.

En este caso, en vez de usar la opción a, se han usado las de usuario, grupo y otros.


También podemos añadir y quitar permisos a la vez a diferentes grupos si separamos por comas.


De esta forma, a usuario le quitamos permisos de modificar, al grupo le damos permisos de lectura y ejecución, y a los demás (otros) le quitamos el de permiso para modificar.




La segunda forma para añadir permisos, es mediante números.
Esta tabla indica como se agrupan los números.







Fuente de la imagen: bytelearning.blogspot.com.es


Si por ejemplo, queremos que usuario tenga todos los permisos (7), que grupo pueda leer y escribir, pero no ejecutar (6) y otros solo puedan leer (4), entonces escribiríamos $ chmod 764 Archivo_normal.




También podemos cambiar los permisos de forma recursiva usando -R (recomiendo no hacer en ningún caso un cambio de permisos recursivo en / ).


En esta foto, cambiamos los permisos de forma recursiva de todo lo que hay en Carpeta, dando todos los permisos a todos los grupos.




En el próximo tutorial de permisos, hablaré sobre los permisos especiales y la máscara de permisos.

Un saludo y hasta la próxima!

No hay comentarios:

Publicar un comentario