Cómo dar permisos a un archivo en Linux con chmod

En Linux, cada archivo tiene permisos de lectura (r), escritura (w) y ejecución (x) para tres grupos: el propietario, el grupo y otros. El comando para cambiarlos es chmod.

Ver los permisos actuales

ls -l archivo

Verás algo como -rwxr-xr--: las tres primeras letras son del propietario, las tres siguientes del grupo y las últimas de los demás.

chmod con letras (fácil)

# dar permiso de ejecución
chmod +x script.sh
# quitar escritura a "otros"
chmod o-w archivo

chmod con números (preciso)

Cada permiso vale: lectura 4, escritura 2, ejecución 1. Se suman por grupo:

# rwx r-x r-x  -> propietario todo, grupo y otros leer/ejecutar
chmod 755 script.sh
# rw- r-- r--  -> típico de un archivo de datos
chmod 644 archivo

Así, 755 es habitual en programas y carpetas, y 644 en archivos normales.

Aplicar a una carpeta y su contenido

chmod -R 755 carpeta

Preguntas frecuentes

¿Qué significa «Permission denied» al ejecutar un script?

Que le falta el permiso de ejecución. Solución: chmod +x script.sh y vuelve a lanzarlo con ./script.sh.

¿chmod cambia el dueño del archivo?

No. Para cambiar propietario o grupo se usa chown, no chmod.