El Comando chmod en Linux: Controlando los Permisos de Acceso

La administración de permisos en sistemas operativos basados en Linux es fundamental para la seguridad y el correcto funcionamiento. El comando chmod (change mode) es la herramienta principal utilizada para modificar los permisos de acceso a archivos y directorios. A continuación, se detalla su sintaxis y uso práctico.

Sintaxis Básica de chmod

La estructura genarel del comando chmod es la siguiente:

chmod [OPCIONES] MODO ARCHIVO...

Donde:

  • [OPCIONES]: Modificadores como -R para cambios recursivos.
  • MODO: Especifica los permisos a aplicar. Puede ser simbólico o numérico (octal).
  • ARCHIVO...: Uno o más nombres de archivos o directorios a modificar.

Modos de Permiso Simbólicos

El modo simbólico permite especificar permisos utilizando letras para los usuarios, operadores y tipos de permiso.

Quiénes Afecta (Clases de Usuario)

  • u: Propietario (User) del archivo.
  • g: Grupo (Group) al que pertenece el archivo.
  • o: Otros (Others) usuarios no propietarios ni miembros del grupo.
  • a: Todos (All) los usuarios (u, g y o). Es el valor por defecto si no se especifica una clase.

Operadores

  • +: Añade el permiso especificado.
  • -: Elimina el permiso especificado.
  • =: Establece los permisos especificados, eliminando cualquier otro permiso existente para esa clase.

Tipos de Permiso

  • r: Permiso de lectura (read).
  • w: Permiso de escritura (write).
  • x: Permiso de ejecución (execute) para archivos o de acceso para directorios.
  • X: Ejecución para directorios y para archivos si ya tienen algún permiso de ejecución establecido.

Modos de Permiso Numéricos (Octal)

El modo numérico es una forma concisa de establecer permisos utilizando una combinación de números octales. Cada permiso tiene un valor numérico:

  • r (lectura): 4
  • w (escritura): 2
  • x (ejecución/acceso): 1
  • - (sin permiso): 0

Se suma el valor de los permisos deseados para cada clase (propietario, grupo, otros) para formar un número de tres dígitos. Por ejemplo:

  • 7 (4+2+1): Lectura, escritura y ejecución.
  • 6 (4+2+0): Lectura y escritura.
  • 5 (4+0+1): Lectura y ejecución.
  • 4 (4+0+0): Solo lectura.

Ejemplos Prácticos de chmod

Cambiar Permisos de un Archivo

  • Establecer permisos de lectura y escritura para el propietario, y solo lectura para el grupo y otros para documento.txt: ``` chmod 644 documento.txt
  • Hacer un script ejecutable solo para el propietario: ``` chmod u+x mi_script.sh
  • Remover el permiso de escritura para el grupo y otros en informe.pdf: ``` chmod go-w informe.pdf
    
    

Cambiar Permisos de un Directorio

  • Permitir al propietario leer, escribir y acceder, al grupo leer y acceder, y a otros sin acceso a /servidor/web/: ``` chmod 750 /servidor/web/
  • Establecer permisos de lectura, escritura y acceso para todos en todos los subdirectorios y archivos dentro de /descargas/ de forma recursiva: ``` chmod -R 777 /descargas/
    
    

Usando Comodines

  • Dar permisos de lectura y escritura al propietario, y solo lectura al grupo y otros, a todos los archivos con extensión .log en el directorio actual: ``` chmod 644 *.log
    
    

Visualización de Permisos con ls -l

Para inspeccionar los permisos actuales de un archivo o directorio, se utiliza el comando ls -l:

ls -l nombre_archivo_o_directorio

La salida mostrará una cadena de 10 caracteres al inicio de cada línea, por ejemplo, -rw-r--r--. Esta cadena se interpreta de la siguiente manera:

  1. El primer carácter indica el tipo de entrada:
    • -: Archivo regular.
    • d: Directorio.
    • l: Enlace simbólico.
    • ... entre otros tipos.
  2. Los siguientes nueve caracteres se dividen en tres grupos de a tres, representando los permisos para:
    • **Propietario (u):** Los primeros tres caracteres (ej. rw-).
    • **Grupo (g):** Los siguientes tres caracteres (ej. r--).
    • **Otros (o):** Los últimos tres caracteres (ej. r--).

Dentro de cada grupo, r significa lectura, w escritura, x ejecución/acceso, y - indica la ausencia de ese permiso.

Diferencias Clave: Permisos en Archivos vs. Directorios

Los significados de r, w y x varían sutilmente dependiendo de si se aplican a un archivo o un directorio:

Permisos de Archivo

  • r (Lectura): Permite ver el contenido del archivo.
  • w (Escritura): Permite modificar o eliminar el archivo.
  • x (Ejecución): Permite ejecutar el archivo si es un programa o script.

Permisos de Directorio

  • r (Lectura): Permite listar los nombres de los archivos y subdirectorios dentro del directorio.
  • w (Escritura): Permite crear, eliminar o renombrar archivos y subdirectorios dentro del directorio, independientemente de los permisos de los elementos individuales.
  • x (Acceso/Búsqueda): Permite ingresar al directorio (usar cd) y acceder a los archivos y subdirectorios dentro de él (si se conocen sus nombres y se tienen los permisos adecuados sobre ellos). Sin este permiso, no se puede acceder al contenido del directorio, incluso con permiso de lectura.

Combinaciones de Permisos Comunes

A continuación, se presentan algunas configuraciones de permisos numéricos y sus equivalentes simbólicos, muy utilizados en entornos Linux:

Numérico Simbólico Descripción
600 rw------- El propietario tiene lectura y escritura; nadie más tiene acceso.
644 rw-r--r-- El propietario tiene lectura y escritura; el grupo y otros solo lectura.
700 rwx------ El propietario tiene lectura, escritura y ejecución; nadie más tiene acceso.
755 rwxr-xr-x El propietario tiene lectura, escritura y ejecución; el grupo y otros lectura y ejecución.
777 rwxrwxrwx Lectura, escritura y ejecución para todos. Generalmente, se usa con precaución.
660 rw-rw---- El propietario y el grupo tienen lectura y esrcitura; otros no tienen acceso.

Etiquetas: linux chmod permisos archivos directorios

Publicado el 7-21 16:52