Como sabemos, Linux es un sistema que fue diseñado con una orientación para trabajo en red. Por lo tanto, la seguridad representa un punto critico ya que de ello depende la protección de la información que almacenemos en nuestros equipos o servidores. Es aqui donde la gestión de permisos de archivos y carpetas en Linux se vuelve fundamental, ya que muchos usuarios tendrán la posibilidad de acceso a todos los recursos.
Gestión de permisos de archivos y carpetas en Linux
Usuario propietario y grupo propietario de un archivo
En Linux todos los archivos, obligatoriamente, pertenecen a un usuario y a su vez un grupo de usuarios. Por lo tanto, cuando un archivo es creado, el propietario sera el usuario que lo creo y asimismo el grupo sera el grupo principal del usuario dicho.
Una manera para poder visualizar el usuario y grupo propietario de un archivo es utilizando el comando ls, seguido la opción -l (formato largo).
El resultado es una lista de todos los archivos, uno por línea. Donde, el primer bloque de 10 caracteres al principio, representa el tipo de archivo y los permisos (Ver imagen al inicio).
El primer carácter nos indica el tipo de archivo. Si es un guión ‘-‘ se trata de un archivo normal, si es una la «d» representa una carpeta (directory), por otro lado la letra ‘l’ indica que se trata de un enlace (link). También pudiera hacer referencia a otros valores como s, p, b que corresponden respectivamente a sockets, tuberías (pipe) y dispositivos de bloque.
Los 9 caracteres siguientes representan los permisos del usuario propietario (3 caracteres), los permisos del grupo propietario (3 caracteres) y los permisos del resto de usuarios (3 caracteres). Los cuales vienen codificados de acuerdo a las letras pertinentes a cada tipo de permiso (esto lo veremos con detalle en la siguiente sección). Si no aparecen letras y en su lugar hay guiones, quiere decir que no hay un tipo de permiso establecido.
Tipos de Permisos
La gestión de permisos de archivos y carpetas en Linux, se realiza por medio de un esquema de tres tipos permisos que pueden tener los usuarios o grupos. El esquema es el siguiente:
- Permiso de lectura
- Permiso de escritura
- Permiso de ejecución
Su significado cambia de acuerdo al contexto donde se aplica, es decir si es archivos o carpetas. Esto lo veremos en las secciones a continuación.
Permiso de lectura
Esto significa que el usuario tiene permisos solo para leer o visualizar el archivo. Aplica para accesos desde alguna aplicación para edición de archivos o comandos de consola. En caso de que el usuario no ten los permisos, sencillamente no podar ver al archivo.
Por otro lado, si un usuario tiene los permisos de lectura para una carpeta, indica que el usuario podrá ver todo el contenido de la carpeta.
En la gestión de permisos, se utiliza la letra «r» para representar el permiso de lectura, proveniente del ingles «read».
Permiso de escritura
Este permiso indica que un usuario tiene potestad sobre un archivo para modificar su contenido, incluso hasta borrarlo. También le otorga la capacidad de modificar los permisos del archivo mediante el comando chmod, así como también podrá cambiar el propietario (usuario o grupo), utilizando chown.
Para el caso de las carpetas, le concede al usuario el poder de modificar el contenido y realizar acciones como crear y modificar otras carpetas / archivos dentro de la misma.
Se representa con la letra «w» el permiso de escritura, viene del inglés»write».
Permiso de ejecución
Como podemos inferir por su nombre, este permiso concede al usuario la capacidad de ejecutar un archivo. En caso de que un usuario no tenga permisos de ejecución sobre un archivo, no podrá ejecutarlo sin importar incluso que sea una aplicación. Ademas, los únicos archivos ejecutables, son los scripts o archivos de comandos y las aplicaciones; si intentamos ejecutarlos sin poseer los permisos, dará como resultado errores.
En cuanto a las carpetas, si el usuario tiene permisos de ejecución sobre ellas, se refiere al hecho de poder acceder a ella. Este permiso aplica tanto para ingresar desde el comando cd o desde un explorador de archivos cualquiera.
El permiso de ejecución se representa con la letra «x» proveniente del inglés «eXecute».
Quizás te interese leer: Gestionar usuarios y grupos en Linux
¿Como se otorgan permisos?
La gestión de permisos en Linux define que los permisos solamente pueden ser otorgados de la siguiente manera:
- Al usuario propietario del archivo
- Al grupo propietario del archivo
- Al resto de usuarios del sistema (todos menos el propietario)
Es decir, no existe posibilidad de dar permisos a usuarios en concreto a menos que seas el propietario del archivo. Por lo tanto, tan solo se puede asignar permisos al usuario propietario, al grupo propietario o al resto de usuarios. Bien sea lectura, escritura, ejecución o una combinación de ellos.
Es importante acotar que para poder hacer cambios de permisos sobre un archivo, se requiere tener permisos de ejecución sobre el mismo. En cambio, el usuario root si puede realzar modificaciones sobre todo, ya que posee un acceso total a la administración del sistema.
Cambio de permisos
En caso de querer hacer cambios en la gestión de permisos, utilizamos el comando chmod. La sintaxis del comando chmod es la siguiente:
[php]chmod [opciones] permiso nombre_archivo_o_carpeta [/php]Donde «permiso» es representado de la siguiente manera:
Iniciales de a quién va dirigido el permiso:
- usuario=u
- grupo=g
- resto=o (other)
Seguido del signo correspondiente a la acción:
- Signo + para añadir el permiso
- Signo – para quitar el permiso
Por ultimo el tipo de permiso: lectura=r, escritura=w y ejecución=x
Veamos algunos ejemplos con el archivo «ejemplo.txt»
Otorgar el permiso de escritura al usuario propietario sobre el archivo «ejemplo.txt»:
[php] chmod u+w ejemplo.txt[/php]Eliminar el permiso de escritura al resto de usuarios sobre el archivo «ejemplo.txt»:
[php]chmod o-w ejemplo.txt[/php]Otorgar el permiso de lectura al grupo propietario sobre el archivo «ejemplo.txt»:
[php]chmod g+r ejemplo.txt[/php]También se puede otorgar diferentes permisos en una misma ejecución del comando, solo hay que separar por comas:
[php]chmod u+w,g-r,o-r ejemplo.txt[/php]Como también permite colocar varios usuarios juntos
[php]chmod ug+w ejemplo.txt[/php]Por otro lado, también existe la posibilidad de cambiar los permisos mediante el uso del explorador de archivos. Para esto, nos basta con seleccionar el archivo o carpeta y haciendo clic sobre el botón derecho del ratón -> Propiedades, aparecerá la ventana de propiedades, luego vamos ala pestaña de permisos y podremos establecerlos de una manera sencilla y rápida. Cabe destacar que la selección puede ser uno o varios archivos o carpetas.