Los permisos sobre archivos son muy importante en UNIX, dado que mediante éstos no solo se gobierna para cada usuario qué información es accesible, sino también qué programas podrá ejecutar!
Como ya sabe, cada elemento del sistema de nombres de archivos lleva
asociado dos números (uid: User Identity, gid: Group Identity)
que indican el usuario y grupo propietario del archivo y un patrón de bits
que codifica los derechos de acceso, modificación y ejecución (véase la
figura ). A esto se añaden los recursos de las listas
de control de acceso (ACL: Access Control List) que no se comenta en
esta sección.
Para modificar los propietarios se utilizan, principalmente, dos mandatos:
chgrp
y chown
. El primero permite cambiar el grupo y se podrá
utilizar si el usuario que ejecuta el mandato es propietario del archivo y
pertenece al nuevo grupo al que se asigna. El segundo se utiliza
habitualmente por el usuario root y permite hacer las dos operaciones
a la vez.
Ambas admiten la posibilidad de hacer un cambio recursivo sobre un
directorio (opción -R
).
chgrp gDest nombre
| Cambia el grupo del archivo o carpeta nombre al grupo destino gDest |
chown uDest nombre
| Cambia el usuario del archivo o carpeta nombre al usuario destino uDest |
chown uDest: gDest nombre
| Cambia el usuario y grupo del archivo o carpeta nombre al usuario y grupo destino uDest y gDest, respectivamente. |
Con lo que respecta a la máscara de permisos, se establece al crear cada archivo de acuerdo con una patrón de permisos denominado umask. Esta máscara, a la vez que los posibles permisos los establece el usuario propietario del archivo o carpeta, y puede expresarse tanto en formato numérico octal como en forma de modificaciones al patrón actual.
chmod ### nombre
| Cambia los permisos del archivo o carpeta nombre según el patrón numérico de tres dígitos en octal: ###. |
chmod instrucc nombre
| idem del anterior, salvo que en instrucc se especifican las variaciones del patrón nuevo con respecto al actual. |
En el primer caso de sintaxis no puede ser más fácil
777
| Representa: rwx rwx rwx. |
540
| Representa: r-x r- --. |
754
| Representa: rwx r-x r-. |
En el segundo la instrucción consta de una letra que identifica la parte del patrón que se modifica (u: usuario, g: grupo, o: otros), un símbolo (+: admitir, -: denegar) y el permiso concreto (r, w, x) (éste último puede incluir una combinación de estas tres letras).
Por ejemplo, para los permisos rwx r-x r--
sobre el archivo ABC
las siguientes instrucciones obtienen un patrón como se indica.
chmod u-w ABC
| Nuevos permisos: r-x r-x r-. |
chmod g-rx ABC
| Nuevos permisos: rwx -- r-. |
chmod o-r ABC
| Nuevos permisos: rwx -x --. |
chmod o+rwx ABC
| Nuevos permisos: rwx r-x rwx. |