Gestión de permisos en Linux con chmod

Introducción

En GNU/Linux todos los ficheros y directorios tiene un usuario y un grupo (a menos que lo cambies los del creador) y una serie de permisos asignados.

Existen 3 tipos de permisos:
– Lectura (R)
– Escritura (W)
– Ejecución (X)
*La letra que está entre paréntesis es la identifica al permiso

Y cada tipo de permiso se asigna a:
Usuario: Dueño del fichero
Grupo: Grupo al que pertenece el fichero
Otro: Otros usuarios que no pertenecen al mismo grupo
* La letra en negrita identifica el permiso

 

Tipos de permisos

Permisos de lectura

Un usuario con permisos es lectura sobre un archivo puede visualizar el contenido, tanto desde una aplicación (como gedit) como desde consola de comandos (usando cat por ejemplo).

Del mismo modo, si el usuario goza de permisos de lectura sobre un directorio será capaz de listar los ficheros en ese directorio, ya sea con el gestor de ficheros (Nautilus, Caja, Thunar, etc) o por consola, usando el comando ls.

Permiso de escritura

Un usuario con permisos de escritura sobre un archivo puede editar el contenido, tanto desde una aplicación (como gedit) como desde consola de comando (usando nano por ejemplo).

Así mismo, si el usuario dispone de permisos de escritura sobre un directorio será capaz de crear ficheros y carpetas en ese directorio, ya sea con el gestor de ficheros (Nautilus, Caja, Thunar, etc) o por consola, usando el comando mkdir.

Irónicamente, es posible tener permisos para crear un fichero o directorio, pero no poder ver el fichero o directorio que has creado por no tener permisos de lectura.

 

Permisos de ejecución

Los permisos de ejecución se utilizan principalmente en aplicaciones y scripts. Si dispones de permisos puedes ejecutar la aplicación/script.

En el caso de los scripts si no tienes permisos GNU/Linux suele abrir el script con un editor de texto.

 

Como consultar los permisos

Los permisos los puedes consultar usando el comando ls (listar) con el modificador -l (ele minúscula: formato largo). La primera columna son los permisos.

listar permisos

 

Otra opción es entrar en las propiedades del fichero/directorio.
Permisos desde Nautilus

 

Cómo interpretar los permisos

Los permisos se muestran como 10 caracteres, el primer carácter puede ser un guión (-) si es un fichero o una “d” si es un directorio*. A continuación están los permisos, que se representan con un total de 9 caracteres: 3 para el usuario, 3 para el grupo y 3 para otros.

Distribución de los permisos

*Hay mas tipos, pero esos son los mas frecuentes.

 

¿Cómo modificar los permisos?

Los permisos se modifican usando el comando chmod, a continuación los permisos, luego el fichero/carpeta y opcionalmente puede tener modificadores.

Sintaxis de chmod
-fR significa forzar y recursivamente, dos modificadores realmente útiles

 

¿Cómo se representan los permisos?

Los permisos pueden estar escritos en octal o en notación simbólica.

La principal diferencia entre uno y otro es que el octal “obliga” a modifica todos los permisos, mientras que el otro modo permite modificar tan solo aquellos que sean necesarios, el resto se quedan igual.

Notación simbólica

En la notación simbólica, se especifica a quien va dirigido el permiso (usuario, grupo, otros o todos), seguido de un mas o un menos (agregar o quitar) y a continuación los permisos.

Por ejemplo, el comando “chmod u+r fichero.txt” agrega permisos de lectura al usuario, y deja el resto de permisos tal cual estaba.

También es posible establecer varios permisos a la vez separando por comas los diferentes permisos. Por ejemplo:

chmod u+rwx,g+rw,g-x,o-r fichero.txt
* El usuario obtiene permisos  lectura/escritura/ejecución
* El grupo obtiene permisos de lectura/escritura y pierde los de ejecución
* Otros pierde permisos de lectura (el resto se quedan como están)

Notación octal

Para asignar permisos frecuentemente se utilizan 3 números octal (de 0 a 7) que se obtienen tranformando un número binario que varía en función de los permisos para el usuario, grupo y otros.

Notación octal permisos

chmod 744 fichero.txt
* Todos los permisos para el usuario
* Permisos de lectura para grupo y otros

 

Ejemplos de permisos

Asigna todos los permisos al usuario, y permisos de lectura al grupo y a otros.
chmod 744 fichero.txt

Asigna a todo el mundo permisos de lectura, escritura y ejecución sobre tu carpeta home (~) de forma recursiva (a todo lo que esté dentro).
chmod 777 ~ -fR

Asigna permisos de lectura y escritura para el usuario, lectura para el grupo y ningún permiso para otros.
chmod 640 fichero.txt

Asigna permisos de ejecución para el usuario a script.sh
chmod u+x script.sh

Asigna permisos todos los permisos al grupo, el resto se dejan como están.
chmod u+rwx fichero.txt

Asigna permisos de lectura a todo el mundo, el resto se dejan como están.
chmod a+r fichero.txt

Asigna todos los permisos al usuario, permisos de ejecución al grupo y elimina los permisos de ejecución a otros, el resto se dejan como están.
chmod u+rwx,g+x,o-x script.sh

Anuncios

2 comentarios en “Gestión de permisos en Linux con chmod

Por cada comentario que haces, Dios salva un gatito

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s