Para alterar los permisos de un fichero, UNIX provee la intrucción chmod. Este comando reconoce dos tipos de sintaxis: una basada en cadenas mnemónicas expresando modificaciones (más intuitiva) y otra basada en combinaciones en base octal (más potente).
La sintaxis para el primer caso es:
chmod quién op permiso [[op2 permiso2]...] fichero
dónde
quién expresa el conjunto de usuarios a los que va a afectar el cambio de permisos y puede ser:
una combinación cualquiera de u, g, o
o la letra a o ninguna letra para designar a todos
op representa la operación a realizar y puede ser
+ para añadir
- para quitar o
= para "resetear" el permiso.
permiso, obviamente, representa el permiso que se desea modificar.
Así, por ejemplo:
chmod g -r fichero
quitará permiso
de lectura para la clase g (grupo) y dejar el resto de los
permisos inalterados
chmod +x fichero
hará ejecutable
un fichero para todo el universo y
chmod ug +x fichero
lo hará sólo
para el usuario y su grupo.
La segunda sintaxis del comando, aunque más compleja, permite cambiar de un sola y breve vez todos los permisos de un fichero: si se trata por separado cada uno de los grupos de usuario, se encontrará 3 bits de permiso para cada uno. Con 3 bits podrán expresarse hasta 8 combinaciones, desde 000 hasta 111. Así, se puede expresar por un dígito octal los permisos de cada grupo.
Por poner un ejemplo:
Supongamos que se desea que todo
el universo pueda leer un fichero pero sólo el propietario
pueda modificarlo. La estructura de permisos será:
u (rw), g(r), o(r)
Es decir
rw- r-- r--
o lo que es lo mismo
110 100 100
que en octal será
644
Por tanto, habrá que teclear:
chmod 644 fichero