Note
En Unix/Linux, cada archivo o directorio tiene permisos para controlar quién puede leer, escribir o ejecutarlo.
rlecturawescrituraxejecución
4(r) lectura2(w) escritura1(x) ejecución
uusuario propietarioggrupo de usuariosootrosatodos
- En archivos:
ls -l nombre_archivo - En carpetas:
ls -ld nombre_directorio
-rwxrwxrwx
Está formado por cuatro bloques: [-][rwx][rwx][rwx]
De izquierda a derecha:
-tipo de archivorwxpermisos de usuariorwxpermisos de gruporwxpermisos para otros usuarios
rwx está indicando que ese bloque tiene permisos de lectura (r), escritura (w) y ejecución (x).
Warning
La ausencia de un permiso (permiso no otorgado) se representa con -.
Ejemplos: r-- indicaría que sólo tiene permisos de lectura, en cambio, r-x indicaría que tiene permisos de lectura y ejecución. Siempre se conserva el orden rwx.
777
- Está formado por 3 dígitos, representando de izquierda a derecha los bloques de
[usuario][grupo][otros]. - Cada número es el resultado de sumar el valor asociado al tipo de permiso:
7= 4 + 2 + 1 (lectura + escritura + ejecución) [rwx]6= 4 + 2 (lectura + escritura) [rw-]5= 4 + 1 (lectura + ejecución) [r-x]4(lectura) [r--]3= 2 + 1 (escritura + ejecución) [-wx]2(escritura) [-w-]1(ejecución) [--x]
Por lo tanto, 777 quiere decir que todos los usuarios tienen permisos de lectura, escritura y ejecución.
764 significaría que el propietario tiene todos los permisos (4 + 2 + 1 = 7), el grupo tendría de lectura y escritura (4 + 2 = 6), y otros únicamente de lectura (4).
-archivoddirectoriolenlace simbólicobdispositivo de bloquecdispositivo de carácterssocketppipe
- Se utiliza el comando
chmod.
chmod [tipo_usuario][+/-][permiso] nombre_archivo/directorio+para otorgar un permiso.-para eliminar un permiso.- Ejemplos:
chmod u+x nombre_archivo/directorio: Otorga permisos de ejecución al usuario propietario.chmod u-x nombre_archivo/directorio: Elimina permisos de ejecución para el usuario propietario.
chmod [permisos_octal] nombre_archivo/directorio- Ejemplos:
chmod 753 nombre_archivo/directorio: u=rwx, g=r-x, o=-wxchmod 642 nombre_archivo/directorio: u=rw-, g=r--, o=-w-
chown [usuario] nombre_archivo/directoriopara cambiar el propietario.chown [usuario]:[grupo] nombre_archivo/directoriopara cambiar el propietario y el grupo.
La máscara hace referencia a los permisos por defecto que se le otorgarán a nuevos directorios o archivos.
umaskmuestra la máscara de permisos por defecto.umask [permisos_octal]establece los permisos por defecto.- Ejemplo:
umask 022
- Ejemplo:
Caution
La modificación de la máscara es temporal, y sólo afecta a la sesión de la shell actual. Para hacerlo permanente, puedes agregarlo al script de configuración de Bash (como en el caso de variables globales explicado en una lección anterior).
La máscara hace referencia a los valores que deben restarse a los permisos máximos razonables de un directorio o archivo.
- Permisos máximos razonables para un directorio:
777 - Permisos máximos razonables para un archivo:
666(Sin ejecución, ya que dar esos permisos por defecto a todos los archivos sería peligroso)
Si la máscara de permisos es 0022, quiere decir lo siguiente:
- Si la máscara tiene 4 dígitos, el primer cero de la izquierda únicamente indica que la representación de los 3 siguientes está en sistema octal.
- 0 al usuario no le quito ningún permiso
- 2 a los grupos le quito el permiso de escritura (2)
- 2 a otros le quito el permiso de escritura (2)
Cálculo de permisos:
- Para directorios:
777-022(bloque a bloque) =755[rwxr-xr-x] - Para archivos:
666-022(bloque a bloque) =644[rw-r--r--]
Esos son los permisos por defecto que se le otorgarían a nuevas carpetas y archivos.
Caution
Algunas acciones requieren privilegios de administrador (root).
sudo [comando] (solicita la contraseña del superusuario).
Ejemplo: sudo rm -rf [directorio_protegido]
