Vous êtes sur la page 1sur 5

chmod

chmod
chmod ("change mode", cambiar modo en idioma ingls) es una llamada al sistema y su comando asociado en el sistema operativo UNIX (estandarizados en POSIX y otros estndares) que permite cambiar los permisos de acceso de un archivo o directorio.

Sintaxis
Comando
Las opciones del comando chmod se especifica del siguiente modo: $ chmod [modificadores] permisos archivo/directorio Donde: modificadores es opcional, y puede tomar los valores: -f: no visualiza los posibles mensajes de error que puedan ocurrir debido a conflictos en la asignacin de permisos. -v: lista los archivos y directorios a los que se les va aplicando el comando a medida que el mismo se ejecuta -h: -R: aplica el comando chmod recursivamente a todos los archivos y de los subdirectorios. -H: -L: -P: -C: igual a -v con excepcin que solo lista los archivos modificados. -E:

El orden y compatibilidad de los modificadores est dada por: [-fhv] [-R [-H -P [-C | -E]

Esto significa que f, h y v pueden ser usados todos a la vez, e independientemente de los valores de los dems modificadores; H, L y P son ignorados salvo que se especifique explcitamente la opcin R permisos corresponde a uno de los modos que se describen a continuacin, y enumera los tipos de permisos que se brindan a las clases de usuarios. archivo/directorio archivo o directorio al cual se otorga el permiso

Llamada al sistema
Ejemplo en lenguaje de programacin C: int chmod(const char *path, mode_t mode); int fchmod(int fd, mode_t mode); mode es un nmero entero que especfica los permisos, como se detallar en el siguiente ejemplo

Especificacin de permisos
Permisos bsicos
Existen tres permisos independientes, llamados permisos bsicos, que pueden ser permitidos (estado 1) o denegados (estado 0) a un archivo y/o directorio

chmod r - lectura w - escritura x - ejecucin El significado de estos tres permisos se resume en la siguiente tabla:
Permiso Lectura Archivo Ver el contenido del archivo. Modificar o eliminar el archivo. Directorio Ver el nombre de los archivos dentro del directorio (pero sin poder saber nada ms sobre ellos como: el tipo de archivo, tamao, propietario, permisos, etc. ) Agregar, eliminar y renombrar archivos del directorio

Escritura

Ejecucin Ejecutar el archivo.

Recorrer su rbol para acceder archivos y subdirectorios, pero no ver los archivos dentro del directorio (excepto que se le de el permiso de lectura)

Clases de usuarios
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 ingls). Por lo tanto, las clases de usuarios a los cuales se les puede asignar los permisos bsicos anteriormente mencionados son: u dueo: dueo del archivo o directorio g grupo: grupo al que pertenece el archivo o otros: todos los dems usuarios que no son el dueo ni del grupo a todos: incluye al dueo, al grupo y a otros

Los permisos efectivos aplicados a un determinado usuario en relacin a un archivo se determinan en un orden lgico de precedencia. Por ejemplo, el usuario propietario del archivo 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.

Asignacin de permisos en el comando chmod


Existen 2 formas o modos de asignar los permisos a los usuarios:

Modo octal
Como resultado de la combinacin de los tres tipos de permisos (lectura, escritura y ejecucin), con las tres clases de usuarios (dueo, 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 dgito por cada combinacin de permisos (un bit a modo de bandera por cada permiso, con valor 1 0 segn el permiso est concedido o denegado). As, las posibles combinaciones se resumen en nmeros octales de tres dgitos del 000 al 777, cada uno de los cuales permite establecer un tipo de permiso distinto a cada clase de usuario: El primer dgito establece el tipo de permiso deseado al dueo; el segundo al grupo; y el tercero al resto de los usuarios.

chmod

Nmero Binario Lectura (r) Escritura (w) Ejecucin (x) 0 1 2 3 4 5 6 7 000 001 010 011 100 101 110 111

Por ejemplo: chmod 766 file.txt chmod 770 file.txt chmod 635 file.txt # # # # # # # brinda acceso total al dueo y lectura y escritura a los dems brinda acceso total al dueo y al grupo y elimina todos los permisos a los dems usuarios Permite lectura y escritura al dueo, escritura y ejecucin al grupo, y lectura y ejecucin al resto

Modo carcter
Posee 3 modificadores que permiten realizar la tarea: + aade un modo elimina un modo = especfica un modo (sobrescribiendo el modo anterior) Por ejemplo: chmod +r arch.txt chmod u+w arch.txt chmod x arch.txt chmod u=rw,go= arch.txt # # # # # # # # agrega permisos de lectura a todos los usuarios agrega permisos de escritura al dueo elimina el permiso de ejecucin a todos los usuarios establece los permisos de lectura y escritura al dueo y elimina todos los permisos a los dems usuarios

Permisos adicionales
Los sistemas UNIX emplean tpicamente tres permisos o modos adicionales. Estos permisos especiales se asignan a archivos o directorios en conjunto, no a cada clase de forma separada (como suceda con los permisos bsicos). Permiso set user ID, setuid o SUID: cuando un archivo que tiene este permiso asignado se ejecuta, el proceso resultante asumir el identificador de usuario efectiva dada a la clase de usuario. El ejemplo tpico es el cambio de una clave de usuario: ningn usuario debera poder modificar /etc/passwd/ directamente. La nica forma de poder modificarlo debera ser a travs del comando correspondiente, que necesariamente tendr que tener asignado el setuid. Es decir, el comando /usr/bin/passwd ejecutado por un usuario se ejecutar como si lo hubiese invocado el superusuario, de manera de poder modificar /etc/passwd.

chmod Permiso set group ID, setgid o SGID: cuando un archivo que tiene este permiso asignado se ejecuta, el proceso resultante asumir el identificador de grupo efectiva dada a la clase de grupo. Cuando el setgid le es asignado a un directorio, archivos nuevos y directorios creados debajo de ese directorio heredarn el grupo de ese directorio, a diferencia del comportamiento por defecto, que es usar el grupo primario del usuario efectivo al asignar el grupo de archivos nuevos y directorios. Permiso de sticky bit (o menos comn, bit pegadizo): El comportamiento tpico del sticky bit en archivos ejecutables fuerza al ncleo a retener la imagen del proceso resultante luego de su terminacin. Originalmente, esta era una caracterstica para ahorrar memoria, pero hoy en da, los precios de las memorias han disminuido y exiten mejores tcnicas para manejarlo, as que no se lo suele utilizar ms para optimizaciones en archivos. En un directorio, por el contrario, el sticky bit previene que los usuarios renombren, muevan o borren los archivos que all se encuentran, pertenecientes a usuarios otros que ellos mismos, incluso si tienen permiso de escritura en el directorio. Solo el propietario del directorio y el superusuario quedan exentos de esto. Estos tres permisos (especificables de forma independiente), un bit por cada uno de ellos, permiten 8 combinaciones posibles que se expresan con un dgito en base 8 (del 0 al 7, uno por cada combinacin posible) que se antepone al modo de permisos. As, el modo se ampliara ahora del 0000 al 7777. = especfica un modo (sobrescribiendo el modo anterior) Por ejemplo: chmod +t /home home chmod g+s /home/grupo chmod gu+s /home /grupo al grupo respectivamente # agrega permisos de sticky bit al directorio # agrega el setgid al grupo # agrega el setuid y el setgid al usuario y

Enlaces externos
chmod(1) [1]:cambio de permisos de archivos y directoriosComandos generales en el Manual de Debian chmod [2] manual de GNU coreutils (en ingls) GNU "Setting Permissions" manual [3] manual de GNU coreutils (en ingls)

Referencias
[1] http:/ / manpages. debian. net/ cgi-bin/ man. cgi?query=chmod& sektion=1& locale=es [2] http:/ / www. gnu. org/ software/ coreutils/ manual/ html_node/ chmod-invocation. html [3] http:/ / www. gnu. org/ software/ coreutils/ manual/ html_node/ Setting-Permissions. html

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


chmod Fuente: http://es.wikipedia.org/w/index.php?oldid=53238059 Contribuyentes: Ayleen, Boja, Dodo, Dvdgc, Edux, Elwikipedista, Fibonacci, Folkvanger, Hoenheim, Jcarles1020, Jesuja, Jkbw, Josell2, Lucianobello, Plux, Shooke, Sirpuppet, Sorareader, 42 ediciones annimas

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/

Vous aimerez peut-être aussi