Los permisos en Línux
En este post vamos a tratar el tema de permisos en Linux.
En Línux podemos asignar permisos sobre un recurso a tres «entidades» distintas:
- Permisos al propietario del recurso
- Permisos al grupo propietario del recurso
- Permisos al resto de usuarios
Los permisos que podemos aplicar son:
- Lectura
- Escritura
- Execución
Así pues tenemos que podemos asignar tres tipos de permisos sobre tres entidades distintas.
Para establecer los permisos en Línux utilizamos la instrucción CHMOD seguido de un código numérico de tres dígitos.
En la red podemos encontrar fácilmente tablas de referencia con los valores posibles de este código y su significado.
Para no tener que hacer uso de ellas a la hora de asignar los permisos podemos usar una sencilla regla mnemotécnica:
Asignamos un número a cada tipo de permiso y un dígito a cada «entidad»:
Números
- (1) Permiso de ejecución
- (2) Permiso de escritura
- (4) Permiso de lectura
Si queremos dar a una entidad permiso solo de lectura sobre un recurso usaremos el número 4. Que queremos darle permisos de lectura (4) y ejecución (1)? pues usaremos el número 5 (4+1).
Así pues para dar permisos totales usaremos un 7 (1+2+4) así como un 0 para no dar ninguno.
Dígitos
- Primer dígito: permisos del usuario propietario
- Segundo dígito: permisos del grupo propietario
- Tercer dígito: permisos para el resto de usuarios
Si sobre un determinado fichero queremos dar permisos totales para el usuario propietario,de lectura para el grupo propietario y ninguno para el resto de usuario usaremos dígito 7 para el propietario, 4 para el grupo y 0 para el resto. LA instrucción quedaria de esta manera:
sudo chmod 740 ElFichero.txt
Si lo que queremos es solo cambiar los permisos de los directorios (sin tocar los archivos) lo que haremos será esto:
sudo chmod 740 *
Para consultar los permisos que tiene un recurso podemos usar ls el modificador -l.
ls -l
Cuando asignamos los permisos a una carpeta o podemos querer que estos mismos permisos se propaguen por las subcarpetas y archivos que la carpeta contiene.
Para hacerlo usaremos el modificador -R , la instrucción en este caso quedaria de este modo:
sudo chmod 740 MiCarpeta -R
Este es el modelo de permisos original de Linux, concebido en los setenta y todavía en uso.
El problema viene cuando buscamos una estructura de permisos más compleja en la que varios grupos accedan a un mismo recurso o en el caso de que un usuario al que no queramos hacer propietario ni miembro del grupo pueda acceder a una determinada carpeta, etc…
Para poder dar un paso más allá de los permisos tradicionales y cubrir todas las posibilidades que cubren el resto de sistemas operativos actuales podemos hacer uso de los permisos ACL, tema que trataremos en el próximo post…