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-Rpara 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): 4w(escritura): 2x(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
.logen 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:
- El primer carácter indica el tipo de entrada:
-: Archivo regular.d: Directorio.l: Enlace simbólico.- ... entre otros tipos.
- 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--).
- **Propietario (u):** Los primeros tres caracteres (ej.
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 (usarcd) 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. |