El comando chmod
(«change mode», cambiar modo) es una llamada al sistema y su comando asociado en el sistema operativo UNIX/LINUX (estandarizados en POSIX y otros estándares) que permite cambiar los permisos de acceso de un fichero o directorio. Su sintaxis es:
Las opciones de chmod
son similares a chown
y chgrp
. Particularmente con la opción --recursive
o -R
cambia todos los ficheros de un árbol de directorios. Podemos especificar el modo de fichero de dos maneras básicas:
- Como número octal.
- Como un modo simbólico
La representación octal del modo es la misma que la descrita anteriormente (sección 4.7.1.- Significado de los bits de permiso). Por ejemplo para cambiar los permisos de libreta.doc
por rw-r--r--
, podemos usar el comando:
Además, podemos anteponer a los tres dígitos de los permisos de propietario, de grupo y globales otro dígito para que defina los permisos especiales.
Tenemos una cadena de permisos:
El primer grupo de la cadena de propiedades pertenece al usuario y admiten tres bit’s.
El segundo grupo de tres se refiere a los permisos para el grupo.
Y el tercer grupo de tres se refiere a los permisos globales.
Desglosemos la cadena de permisos para una mejor comprensión:
Según los valores de los bits podemos definir los permisos, por ejemplo si queremos modificar el bit del propietario para sólo lectura (r
) el primer valor sería solamente el 4
, si queremos los permisos de lectura y escritura (rw
)entonces se sumaría el valor de lectura (4
) más el valor de escritura (2
) lo que tendríamos un resultado de 6
; si además queremos hacer que el fichero sea un ejecutable (x) según el ejemplo de arriba habría que sumarle uno más al valor anterior (6+1=7
).
Supongamos que tenemos un ejecutable llamado almacen
y desea definir los bits SUID
y SGID
(6) para lectura y escritura y que el programa sea leído, escrito y ejecutado por el usuario (7) y que el grupo lo pueda leer y ejecutar (5) pero el resto no tenga ningún acceso:
El modo simbólico
Los códigos utilizados, para asignar con chmod los permisos básicos anteriormente mencionados son:
- u .- dueño: dueño del fichero o directorio.
- g .- grupo: grupo al que pertenece el fichero.
- o .- otros: todos los demás usuarios que no son el dueño ni del grupo.
- a .- todos: incluye al dueño, al grupo y a otros.
Tomemos como ejemplo el archivo libreta.doc que no tiene asignado ningún permiso:
Primero vamos a dar permiso de ejecución para el usuario, grupo, y los demás:
Daremos permisos para lectura y escritura del usuario y del grupo.
Por último quitaremos los permisos de lectura, escritura y ejecución para los usuarios globales.
Generalmente los permisos simbólicos son más útiles cuando deseamos realizar un cambio sencillo (como añadir permisos de ejecución o escritura a una o más clases de usuarios) o cuando deseamos realizar cambios similares en muchos ficheros que afectan a otros permisos (por ejemplo, añadir permisos de escritura sin que ello afecte a los permisos de ejecución).
El acceso de lectura/escritura a la entrada del directorio o, incluso, al propio fichero, no le da al usuario el derecho a cambiar las estructuras de los nodos del índice a menos que lo haga de modo indirecto como, por ejemplo, cuando al escribir se cambia el tamaño del fichero o cuando un borrado de fichero elimina la necesidad del nodo índice).
Debe estar conectado para enviar un comentario.