Guía de Permisos de Archivos en Linux



Los permisos de archivos en sistemas Linux son un componente fundamental de la seguridad y control de acceso. Este artículo te proporcionará una comprensión completa de los permisos de archivos en Linux, cómo se establecen y cómo se gestionan.

Conceptos Fundamentales

En Linux, cada archivo y directorio tiene asociados tres conjuntos de permisos:

  1. Permisos de Usuario (propietario): Determinan lo que el propietario del archivo puede hacer con él. Esto es crucial ya que el propietario tiene control total sobre el archivo.
  2. Permisos de Grupo: Aplican a un grupo de usuarios específico. Los miembros de este grupo tienen estos permisos en el archivo o directorio.
  3. Permisos de Otros (públicos): Son para cualquier otro usuario que no sea el propietario ni miembro del grupo especificado.

Cada conjunto de permisos consta de tres tipos básicos:

  • Lectura (r): Permite ver el contenido del archivo o listar el contenido del directorio.
  • Escritura (w): Permite modificar el archivo o crear y eliminar archivos en el directorio.
  • Ejecución (x): Permite ejecutar el archivo como un programa o ingresar a un directorio.

Notación de Permisos

Los permisos se representan con una notación de nueve caracteres en Linux. Un ejemplo de notación de permisos es:

-rwxr-xr-- 1 usuario grupo 1024 Sep 8 14:30 archivo.txt
  • El primer carácter indica el tipo de archivo (por ejemplo, - para archivo regular, d para directorio).
  • Los tres grupos de tres caracteres representan los permisos de usuario, grupo y otros, respectivamente.
  • En el ejemplo anterior, el propietario tiene permisos de lectura, escritura y ejecución, el grupo tiene permisos de lectura y ejecución, y otros solo tienen permisos de lectura.

Cambiar Permisos

Puedes cambiar los permisos de un archivo o directorio utilizando el comando chmod. Aquí hay algunos ejemplos:

  • Cambiar permisos numéricamente (formato octal):
  chmod 644 archivo.txt

Esto establece permisos de -rw-r--r-- en el archivo.

  • Cambiar permisos utilizando formato simbólico:
  chmod u+x archivo.sh

Esto agrega permiso de ejecución al usuario en el archivo.

  • Otorgar o quitar permisos a través de la notación simbólica:
  chmod g+w archivo.txt

Esto otorga permisos de escritura al grupo en el archivo.

Tabla que relaciona el formato octal con el formato simbólico para los permisos de archivos en Linux:

Formato OctalFormato SimbólicoDescripción
0Sin permisos
1–xEjecución
2-w-Escritura
3-wxEscritura y ejecución
4r–Lectura
5r-xLectura y ejecución
6rw-Lectura y escritura
7rwxLectura, escritura y ejecución

Por ejemplo:

  • El permiso chmod 644 archivo.txt es equivalente a chmod u=rw-,go=r-- archivo.txt.
  • El permiso chmod 751 directorio es equivalente a chmod u=rwx,g=rx,o=x directorio.

Esta tabla te permite comprender cómo se expresan los permisos en formato octal y cómo se traducen a notación simbólica para aplicarlos a archivos y directorios en Linux.

Modificar los permisos

Esta tabla muestra la notación simbólica se utiliza con el comando chmod para modificar los permisos de archivos y directorios:

Notación SimbólicaDescripciónEjemplo
uPropietario (Usuario)
gGrupo
oOtros (Público)
aTodos (Combinación de u, g y o)
+Agregar permisos
Quitar permisos
=Establecer permisos
rLecturau+r (Propietario)
wEscriturag-w (Grupo)
xEjecucióno+x (Otros)
sSUID (Set-User-ID)u+s (Propietario)
SDespejar SUIDg-s (Grupo)
tSGID (Set-Group-ID)o+t (Otros)
TDespejar SGIDa+T (Todos)

Ejemplos de uso:

  1. Para agregar permisos de escritura al propietario de un archivo:
   chmod u+w archivo.txt
  1. Para quitar permisos de ejecución al grupo de un archivo:
   chmod g-x archivo.txt
  1. Para establecer permisos de lectura y escritura para otros usuarios en un directorio:
   chmod o=rw directorio/
  1. Para establecer el bit SUID (Set-User-ID) en un archivo ejecutable:
   chmod u+s programa
  1. Para despejar el bit SGID (Set-Group-ID) en un directorio:
   chmod g-s directorio/

Esta tabla te proporciona una referencia rápida para utilizar la notación simbólica al establecer permisos en archivos y directorios en sistemas Unix y Linux. Puedes combinar diferentes símbolos y permisos para lograr configuraciones específicas de acceso a tus archivos y directorios.

Listar Permisos Actuales

Puedes verificar los permisos actuales de un archivo o directorio con el comando ls -l:

ls -l archivo.txt

Herramientas de Administración de Permisos

Ejemplos de Escenarios Comunes

  1. Archivos de Configuración: Los archivos de configuración (por ejemplo, sshd_config) suelen tener permisos restrictivos para evitar modificaciones no autorizadas.
  2. Archivos Ejecutables: Los archivos ejecutables (por ejemplo, script.sh) deben tener permisos de ejecución para poder ejecutarse.
  3. Directorios de Usuario: Los directorios de usuario (/home/usuario) suelen tener permisos de lectura y ejecución para otros usuarios, pero no permisos de escritura.
  4. Compartir Archivos: Si deseas compartir un archivo con otros usuarios, puedes otorgar permisos de lectura a un grupo al que pertenecen esos usuarios.
  5. Directorios Web: En servidores web, los archivos de un sitio web suelen tener permisos de lectura para el público (-r--r--r--), mientras que los directorios deben tener permisos de ejecución para permitir la navegación.

Conclusión

Comprender y administrar los permisos de archivos en Linux es esencial para garantizar la seguridad y el control de acceso en el sistema. La notación de permisos, el comando chmod y las herramientas relacionadas son herramientas poderosas para configurar y gestionar permisos según tus necesidades específicas.