Home > Comandos básicos, General, Linux > chmod y permisos en linux

chmod y permisos en linux

June 20th, 2013

Linux es un sistema operativo multiusuario y permite varios usuarios en un mismo ordenador, además estos usuarios pueden estar organizados en grupos. Por ello existen 3 roles diferentes: el usuario que es uno mismo, el grupo al que pertenece el usuario y que puede tener más miembros y todo el mundo. Además, para asegurar la privacidad en linux todos los ficheros tienen 3 tipos de permisos, de lectura “r” (read), de escritura “w” (write) y de ejecucion “x” (eXecution), que según estén activados o no nos permiten leer, escribir o ejecutar un fichero, respectivamente. Asó pues con 3 roles y 3 permisos por rol tenemos 9 permisos que podemos gestionar. Para ver los permisos podemos listar los ficheros (ls) indicándole que nos dé más información el formato largo (-l). Por ejemplo:

$ ls -l hola.sh
-rw-rw-r-- 1 jose departamento 0 abr 24 10:24 hola.sh

El primer carácter si es “-” nos indica que es un fichero, en caso de directorios aparece “d“. Los 3 siguientes caracteres son los permisos del usuario. Como vemos tiene permisos de lectura y escritura (rw). El de ejecución no está activado y aparece “-“. Los 3 siguientes son para el grupo y tiene los mismos permisos, lectura y escritura (rw). El resto de usuarios en el ordenador solo tienen permisos de lectura (r).

Para cambiar los permisos de nuestros ficheros se usa el comando chmod. La manera más intuitiva es indicar a quien – u, g,o o a para indicar usuario, grupo, otros o a todos (all) respectivamente – le queremos dar (+) o quitar (-) permiso de lectura, escritura o ejecución (r, w o x respectivamente). Veamos un ejemplo donde primero añadimos al usuario permiso de ejecución del fichero hola.sh y luego eliminamos permiso de lectura al todo el mundo y finalmente le volveremos a dar permiso de lectura al usuario.

$ ls -l hola.sh
-rw-rw-r-- 1 jose departamento 0 abr 24 10:24 hola.sh
$ chmod u+x hola.sh
$ ls -l hola.sh
-rwxrw-r-- 1 jose departamento 0 abr 24 10:24 hola.sh
$ chmod a-r hola.sh
$ ls -l hola.sh
--wx-w---- 1 jose departamento 0 abr 24 10:24 hola.sh
$ chmod u+r hola.sh
$ ls -l hola.sh
-rwx-w---- 1 jose departamento 0 abr 24 10:24 hola.sh

 

Como vemos al usuario le ha aparecido el permiso de ejecución x, también tiene de lectura y escritura y el grupo tiene de escritura. Hay otro tipo de permisos especiales que no vamos a tratar y otra sintaxis para cambiarlos menos intuitiva.

 

 

 

Comandos básicos, General, Linux