Comando chmod en Linux: Permisos Octal y Simbólico
El comando chmod es una de las herramientas más esenciales en Linux para administrar permisos de archivos y directorios. Con chmod, puedes controlar quién puede leer, escribir o ejecutar archivos en tu sistema, garantizando la seguridad y la integridad de los datos. En esta guía completa, aprenderás cómo utilizar chmod, cómo funcionan los permisos en Linux, y ejemplos prácticos para aplicar en tu día a día.

¿Qué es el Comando chmod?
El comando chmod (change mode) se usa para alterar los permisos de archivos y directorios en Linux. Los permisos controlan lo que diferentes tipos de usuarios (propietario, grupo, otros) pueden hacer con un archivo o directorio, como leer, escribir o ejecutarlo. Entender cómo usar chmod es fundamental para gestionar la seguridad y el acceso en tu sistema.
¿Cómo Funcionan los Permisos en Linux?
En Linux, cada archivo o directorio tiene tres tipos de permisos para tres categorías de usuarios:
- Usuario (owner): El propietario del archivo.
- Grupo (group): Un grupo de usuarios al cual pertenece el archivo.
- Otros (others): Todos los demás usuarios.
Los permisos se representan con tres letras:
- r: Permiso de lectura (read).
- w: Permiso de escritura (write).
- x: Permiso de ejecución (execute).
Cada uno de estos permisos puede ser asignado al usuario, grupo y otros.
Usando el Comando chmod
El comando chmod puede ser utilizado de dos maneras principales: usando la notación simbólica o la notación numérica.
1. Notación Simbólica
La notación simbólica usa letras para representar los permisos:
- u: Usuario (owner)
- g: Grupo
- o: Otros
- a: Todos (user, group, others)
Para agregar, remover o asignar permisos, usa los símbolos +, -, y =.
Ejemplo:
chmod u+rwx,g+rx,o+r arquivo.txt
Este comando otorga todos los permisos al usuario, permisos de lectura y ejecución al grupo, y solo lectura para otros.
2. Notación Numérica
En la notación numérica, cada permiso se representa con un número:
- r = 4
- w = 2
- x = 1
Los permisos se combinan para formar un número de 3 dígitos. Cada dígito representa los permisos del usuario, grupo, y otros, respectivamente.
Ejemplo:
chmod 755 script.sh
Este comando define los permisos para que el usuario tenga lectura, escritura y ejecución (7 = 4+2+1), mientras que el grupo y otros tienen solo lectura y ejecución (5 = 4+1).
Ejemplos Prácticos del Uso de chmod
1. Haciendo un Archivo Ejecutable
Si tienes un script que deseas hacer ejecutable:
chmod +x script.sh
Este comando agrega el permiso de ejecución para todos los usuarios.
2. Removiendo Permisos de Escrita para Otros
Para garantizar que solo el propietario pueda modificar un archivo:
chmod o-w arquivo.txt
Este comando remueve el permiso de escritura para otros usuarios.
3. Definiendo Permisos Recursivos
Si necesitas alterar los permisos de todos los archivos y directorios dentro de una carpeta:
chmod -R 755 /caminho/para/diretório
El -R aplica los permisos recursivamente a todos los archivos y subdirectorios.
4. Restringiendo Acceso Totalmente a Otros
Para impedir que cualquier usuario además del propietario acceda a un archivo:
chmod 700 arquivo.conf
Este comando garantiza que solo el propietario puede leer, escribir y ejecutar el archivo.
5. Permisos Predeterminados con umask
Si deseas que los nuevos archivos creados tengan permisos específicos automáticamente, puedes configurar esto con umask:
umask 022
Este comando hace que los nuevos archivos se creen con permisos 755 (o rw-r--r-- para archivos).
Entendiendo Permisos Especiales: SUID, SGID, y Sticky Bit
Además de los permisos básicos, Linux también tiene permisos especiales que pueden ser configurados con chmod.
1. SUID (Set User ID)
Cuando SUID está definido, un archivo ejecutable se ejecuta con los permisos del propietario en lugar del usuario que lo ejecuta:
chmod u+s arquivo
2. SGID (Set Group ID)
Cuando SGID se aplica a un directorio, los archivos creados en él heredan el grupo del directorio:
chmod g+s diretório
3. Sticky Bit
El Sticky Bit en un directorio impide que los usuarios eliminen archivos que no les pertenecen:
chmod +t /diretório/compartilhado
Conclusión
El comando chmod en Linux es una herramienta poderosa para administrar los permisos de archivos y directorios. Comprender y aplicar los permisos correctos es fundamental para garantizar la seguridad y funcionalidad del sistema. Ya sea configurando un simple script o administrando un directorio compartido, chmod ofrece la flexibilidad necesaria para satisfacer sus necesidades.
Consejo: Siempre revise los permisos de los archivos y directorios críticos en su sistema para evitar accesos no autorizados y mantener la integridad de los datos.
Explore más sobre cómo cambiar propietarios de archivos con el comando chown y cómo configurar permisos predeterminados para nuevos archivos usando umask en nuestra guía completa. Si necesita permisos avanzados, lea nuestra publicación sobre Access-Control-Lists (ACLs).
Eso fue solo una pieza. El curso enseña el camino completo — desde tu primer comando hasta el día del examen.