Loading AI tools
llamada al sistema y su comando asociado en el sistema operativo UNIX De Wikipedia, la enciclopedia libre
chmod, que significa "cambiar modo" (del inglés: "change mode"), es un comando asociado con el sistema operativo UNIX (estandarizados en POSIX y otros estándares) que permite la asignación de permisos de acceso a carpetas o directorios[1].
Las opciones del comando chmod se especifica del siguiente modo:
$ chmod [modificadores] permisos fichero/directorio
Donde:
modificadores es opcional, y puede tomar los valores:
El orden y compatibilidad de los modificadores está dada por:
[-fhv] [-R [-H | -L | -P]] [-c | -E]
Esto significa que f, h y v pueden ser usados todos a la vez, e independientemente de los valores de los demás modificadores; H, L y P son ignorados salvo que se especifique explícitamente la opción R
permisos corresponde a uno de los modos que se describen a continuación, y enumera los tipos de permisos que se brindan a las clases de usuarios.
fichero/directorio fichero o directorio al cual se otorga el permiso
Ejemplo en lenguaje de programación C:
int chmod(const char *path, mode_t mode);
int fchmod(int fd, mode_t mode);
mode es un número entero que específica los permisos, como se detallará en el siguiente ejemplo
Existen tres permisos independientes, llamados permisos básicos, que pueden ser permitidos (estado 1) o denegados (estado 0) a un fichero y/o directorio
El significado de estos tres permisos se resume en la siguiente tabla:
Permiso | Fichero | Directorio |
---|---|---|
Lectura | Ver el contenido del fichero. | Ver el nombre de los ficheros dentro del directorio (pero sin poder saber nada más sobre ellos como: el tipo de archivo, tamaño, propietario, permisos, etc. ) |
Escritura | Modificar o eliminar el fichero. | Agregar, eliminar y renombrar ficheros del directorio |
Ejecución | Ejecutar el fichero. | Recorrer su árbol para acceder ficheros y subdirectorios, pero no ver los ficheros dentro del directorio (excepto que se le dé el permiso de lectura) |
Los permisos de sistemas UNIX se dividen en cuatro clases, conocidas como usuario, grupo, otros y todos (con frecuencia abreviado UGOA por sus siglas en inglés).
Por lo tanto, las clases de usuarios a los cuales se les puede asignar los permisos básicos anteriormente mencionados son:
Los permisos efectivos aplicados a un determinado usuario en relación con un fichero se determinan en un orden lógico de precedencia. Por ejemplo, el usuario propietario del fichero tendrá los permisos efectivos dados a la clase de usuario, sin importar los asignados a la clase de grupo o a la clase de otros.
Existen 2 formas o modos de asignar los permisos a los usuarios:
Como resultado de la combinación de los tres tipos de permisos (lectura, escritura y ejecución), con las tres clases de usuarios (dueño, grupo y otros), se obtiene permisos en total que pueden ser asignados o denegados de forma independiente.
La base 8 se utiliza habitualmente para que exista un dígito por cada combinación de permisos (un bit a modo de bandera por cada permiso, con valor 1 o 0 según el permiso esté concedido o denegado).
Así, las posibles combinaciones se resumen en números octales de tres dígitos del 000 al 777, cada uno de los cuales permite establecer un tipo de permiso distinto a cada clase de usuario:
Número | Binario | Lectura (r) | Escritura (w) | Ejecución (x) |
---|---|---|---|---|
0 | 000 | |||
1 | 001 | |||
2 | 010 | |||
3 | 011 | |||
4 | 100 | |||
5 | 101 | |||
6 | 110 | |||
7 | 111 |
Por ejemplo:
chmod 766 file.txt # brinda acceso total al dueño
# y lectura y escritura a los demás
chmod 770 file.txt # brinda acceso total al dueño y al grupo
# y elimina todos los permisos a los demás usuarios
chmod 635 file.txt # Permite lectura y escritura al dueño,
# escritura y ejecución al grupo,
# y lectura y ejecución al resto
Posee 3 modificadores que permiten realizar la tarea:
Por ejemplo:
chmod +r arch.txt # agrega permisos de lectura a todos los
# usuarios(solo a algunos elegidos previamente)
chmod u+w arch.txt # agrega permisos de escritura al dueño
chmod –x arch.txt # elimina el permiso de ejecución a todos
# los usuarios
chmod u=rw,go= arch.txt # establece los permisos de lectura y escritura
# al dueño y elimina todos los permisos a
# los demás usuarios
Los sistemas UNIX emplean típicamente tres permisos o modos adicionales. Estos permisos especiales se asignan a ficheros o directorios en conjunto, no a cada clase de forma separada (como sucedía con los permisos básicos).
Estos tres permisos (especificables de forma independiente), un bit por cada uno de ellos, permiten 8 combinaciones posibles que se expresan con un dígito en base 8 (del 0 al 7, uno por cada combinación posible) que se antepone al modo de permisos. Así, el modo se ampliaría ahora del 0000 al 7777.
Por ejemplo:
chmod +t /home # agrega permisos de sticky bit al directorio home
chmod g+s /home/grupo # agrega el setgid al grupo
chmod gu+s /home/grupo # agrega el setuid y el setgid al usuario y al grupo respectivamente
chown
, el comando para cambiar el propietario de un fichero o directorio en sistemas tipo Unix.chgrp
, el comando para cambiar el grupo de un fichero o directorio en sistemas tipo Unix.cacls
, el comando utilizado en Windows NT y sus derivados para modificar la lista de control de acceso asociada con un fichero o directorio.attrib
chmod
— manual de GNU coreutils (en inglés)Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.