En sistemas tipo Unix cada archivo y directorio tiene asociados unos permisos que determinan quién puede leerlo, modificarlo o ejecutarlo. Entender cómo funcionan es fundamental para administrar un servidor con seguridad.
Los permisos se dividen en tres grupos: el propietario del archivo, el grupo al que pertenece
y el resto de usuarios. Para cada grupo hay tres bits: lectura (r), escritura (w) y
ejecución (x). Con ls -l podemos verlos:
-rw-r--r-- 1 usuario grupo 1234 jun 5 10:00 archivo.txt
Para cambiar los permisos usamos chmod. Podemos usar la notación octal (más compacta) o la simbólica:
chmod 644 archivo.txt # propietario: rw, grupo y resto: r
chmod 755 script.sh # propietario: rwx, grupo y resto: rx
chmod 600 ~/.ssh/id_rsa # solo el propietario puede leer y escribir
En la notación octal cada dígito suma: 4 (lectura) + 2 (escritura) + 1 (ejecución).
Para cambiar el propietario o el grupo de un archivo usamos chown:
chown usuario archivo.txt
chown usuario:grupo archivo.txt
En un servidor web, por ejemplo, los archivos del sitio suelen pertenecer al usuario de
Apache, con permisos 644 para archivos y 755 para directorios. Cambiar propietario o
permisos de archivos que no son tuyos requiere sudo.