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.
[…] No obstante, no vamos a poder ejecutar el fichero hola.sh pues es un fichero de texto sin permiso de ejecución. Para darle permiso de ejecución usamos el comando chmod. […]