Todo sobre propietarios de archivos y permisos en Linux

,
Permisos en Linux

Linux es un sistema operativo multiusuario basado en los conceptos de propietario de archivo y permisos de Unix para ofrecer seguridad a nivel de sistema de archivos. Si deseas adentrarte en el mundo de Linux, es importante conocer cómo funcionan sus permisos. Eso es precisamente lo que te comparto en este tutorial: los conceptos de propietario de archivos y permisos en Linux.

Sobre los Usuarios

Existe un rol especial de usuario conocido como superusuario (superuser) con la potestad de sobreescribir cualquier propietario de archivo y restricciones de permisos. Este usuario tiene por nombre usuario root y tiene los permisos para acceder a cualquier cosa en el sistema, por lo que es importante mantener segura su contraseña.

Es posible configurar otras cuentas de usuarios con la facultad de asumir los permisos de usuario root. Esto puede hacerse incorporando el usuario al grupo con privilegios administrativos o asignándole privilegios de sudo. Algunas distribuciones como Ubuntu no activan el usuario root a menos que tú lo hagas. Para ejecutar tareas que requieran privilegios administrativos debes ejecutar:

Donde “comando_linux” es el comando que necesitas ejecutar con privilegios administrativos.

Sobre los Grupos

Los grupos son colecciones de cero o más usuarios. Un usuario pertenece a un grupo por defecto (este grupo coincide con el nombre de usuario) y puede pertenecer a cualquier otro grupo en el sistema.

Una forma práctica de ver todos los usuarios, es analizando el contenido del archivo “/etc/group”.

Para ver todos los grupos de tu sistema puedes ejecutar:

Propietarios y Permisos

En Linux, cada archivo tiene como propietario a un solo usuario y a un solo grupo y además tiene sus propios permisos de accesos. La forma más común de ver los permisos de un archivo es mediante el comando “ls”, con la opción de listar de forma extendida. Por ejemplo: “ls -l archivo1”. Si deseas ver los permisos de todos los archivos en el directorio que estás actualmente, ejecuta:

A continuación te mostramos un ejemplo de cómo se ven los archivos al ejecutar el comando anterior y lo que significa cada columna:

Ejemplo de permisos en Linux

Ejemplo de permisos en Linux

A continuación te explicaremos cómo se establecen los permisos y qué significa cada valor de la columna Modo.

Modo en Linux

Para comprender mejor las clases de permisos en Linux, nos apoyaremos en la siguiente figura:

Modo en Linux

Modo en Linux

Tipo de archivo

En Linux, existen dos tipos básicos de archivos: normal (o regular) y especial. El tipo de archivo se indica por el primer caracter del modo de un archivo. Según el ejemplo de la figura, el tipo de archivo corresponde a la letra “d”, lo cual significa que es un directorio.

Los archivos normales son identificados por un guión (-) en el primer campo del modo. Estos son archivos planos que pueden contener datos.

Los archivos especiales son identificados al no tener un guión en el primer campo del modo. El tipo de archivo especial más común es el directorio y es identificado por la letra “d”, según se muestra en la figura anterior.

Clases de Permisos

De la figura anterior podemos observar que las clases de permisos (o permisos de forma general) se componen de tres elementos: propietario (que es el usuario en sí), grupo y otro. El orden de las clases se mantiene igual en todas las distribuciones de Linux. Pero ¿qué usuarios pertenecen a cada clase de permisos?:

  • Propietario (usuario): El propietario del archivo que pertenece a esta clase.
  • Grupo: Los miembros del grupo del archivo que pertenecen a esta clase.
  • Otro: Cualquier usuario que no pertenezca a las clases anteriores.

Leyendo los Permisos

Cada clase está compuesta por tres tipos de permisos:

  • Lectura: Representado por una r en la primera posición. Posee el valor de 4 en octal.
  • Escritura: Representado por una w en la segunda posición. Posee el valor de 2 en octal.
  • Ejecución: Representado por una x en la tercera posición. Posee el valor de 1 en octal.

Un guión (-) en el lugar de los caracteres anteriores indica que ese permiso no está disponible en la clase respectiva. Por ejemplo, si los permisos del grupo para un archivo es r–(4 en octal), esto indica que el archivo es de solo lectura para el grupo que está asociado con el archivo.

Entendiendo los permisos de Lectura, Escritura y Ejecución

A continuación mostraremos los usos más comunes para archivos y directorios en Linux.

Lectura

  • Para un archivo normal, el permiso de lectura permite a un usuario ver el contenido del archivo.
  • Para un directorio, el permiso de lectura permite a un usuario ver los nombres de los archivos en el directorio.

Escritura

  • Para un archivo normal, el permiso de escritura permite a un usuario modificar y eliminar el archivo.
  • Para un directorio, el permiso de escritura permite a un usuario eliminar el directorio, modificar su contenido (crear, borrar y renombrar archivos en él.) y modificar el contenido de los archivos que el usuario puede leer.

Ejecución

  • Para un archivo normal, el permiso de ejecución permite a un usuario ejecutar un archivo (el usuario debe tener permiso de lectura). El permiso de ejecución debe aplicarse en los archivos binarios y scripts antes de ejecutarlos.
  • Para un directorio, el permiso de ejecución permite a un usuario entrar a un directorio (por ejemplo, mediante el comando cd) y acceder a los metadatos (información mostrada por el comando ls -l) de los archivos en el directorio.

Ejemplos de Modos y Permisos

Existen diferentes combinaciones de permisos, a continuación mostramos solo algunos ejemplos.

  • -rw——-: el archivo es solo accesible por su propietario. En el octal el valor es 400.
  • -rwxr-xr-x: el archivo es ejecutable por todos los usuarios del sistema. En el octal el valor es 755.
  • -rw-rw-rw-: el archivo puede ser modificado por todos los usuarios del sistema. En el octal el valor es 666. Por lo general este es un permiso peligroso.
  • drwxr-xr-x: El directorio puede ser accedido por todos los usuarios del sistema. En el octal el valor es 755.
  • drwxrwx—: El directorio es modificable (incluido su contenido) por su propietario y grupo. El valor en octal es 770.
  • drwxr-x—: El directorio es accedido por su propietario y grupo. El propietario puede realizar cambios. El valor en octal es 750.

De forma general, los archivos en los servidores webs deben tener permisos de lectura y escritura por su propietario, para el grupo y otro solo de lectura, 644. Mientras que los directorios deben tener permisos de lectura, escritura y ejecución por su propietario y para el grupo y otro de lectura y ejecución, 755. Esto no es algo que debamos aplicar para todos los casos, ya que hay archivos que solo deben ser accesibles por los usuarios que lo necesitan por una razón particular.

Otro punto a tener en cuenta es que a pasar de existir una gran cantidad de combinaciones posibles de permisos, solo algunos tienen sentido en la mayoría de los casos. Por ejemplo, el acceso de escritura o ejecución mayormente está acompañado por el acceso de lectura. Por tanto es difícil modificar e imposible de ejecutar, algo que no puede leer.

Modificando la Propiedad y los Permisos

Para modificar la propiedad y los permisos de los archivos y directorios en Linux puedes emplear los comandos chwon, chgrp y chmod para cambiar el propietario-grupo, grupo y permisos respectivamente. Para mayor información puedes consultar los manuales de ayuda de estos comandos mediante:

Punto Final

En este tutorial has aprendido cómo funcionan la propiedad y los permisos de los archivos en Linux. Siempre es bueno mantener todos tus archivos y directorios con los permisos correctos y accesibles por los usuarios que lo necesiten.

Además de los permisos tratatados en este artículos existen los permisos especiales los cuales viene a solucionar algunos problemas propios de la arquitectura del sistema de archivos de Linux.

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *