Cómo leer los permisos con ls -l
$ ls -l script.sh
-rwxr-xr-- 1 ana desarrollo 220 ene 12 10:00 script.shLos diez primeros caracteres se dividen así:
- Tipo: el primer carácter (
-archivo,ddirectorio). - Propietario (u): siguientes 3 caracteres — aquí
rwx. - Grupo (g): siguientes 3 — aquí
r-x. - Otros (o): últimos 3 — aquí
r--.
r (leer), w (escribir) y x (ejecutar) suman 4, 2 y 1 respectivamente. rwx = 7, r-x = 5, r-- = 4.
Cambiar permisos con chmod
chmod 755 script.sh # rwxr-xr-x — propietario todo, resto lectura+ejecución
chmod 644 archivo.txt # rw-r--r-- — habitual para archivos normales
chmod +x script.sh # añade permiso de ejecución sin tocar el resto
chmod -R 750 carpeta/ # aplica de forma recursiva a toda la carpetaSi prefieres usar la calculadora en vez de hacer la suma a mano, tienes el conversor de permisos chmod de SysLab.
Cambiar el propietario con chown
sudo chown ana archivo.txt # cambia el propietario a "ana"
sudo chown ana:desarrollo archivo.txt # cambia usuario y grupo
sudo chown -R www-data:www-data /var/www/mi-sitio # recursivo, típico en servidores webchmod vs chown
chmod cambia qué se puede hacer con el archivo. chown cambia quién es el propietario. Suelen usarse juntos al desplegar aplicaciones web.
Preguntas frecuentes
¿Por qué me da "Permission denied" aunque soy el propietario?
Comprueba que tienes el bit de ejecución (x) si intentas ejecutar un script, y revisa si el sistema de archivos está montado como solo lectura.
¿Qué son los permisos especiales setuid, setgid y sticky bit?
Son bits adicionales para casos concretos: setuid ejecuta el archivo con los permisos del propietario, setgid hereda el grupo en directorios, y el sticky bit (usado en /tmp) evita que un usuario borre archivos de otro.