Mandato chmod

Finalidad

Cambia modalidades de archivo.

Sintaxis

Para cambiar modalidades de archivo simbólicamente

chmod [ -R ] [ -h ] [ -f ] [ [ u ] [ g ] [ o ] | [ a ] ] { { - | + | = } [ r ] [ w ] [ x ] [ X ] [ s ] [ t ] } { Archivo ... | Directorio ... }

Para cambiar modalidades de archivo numéricamente

chmod [ -R ] [ -h ] [ -f ] CódigoPermiso { Archivo ... | Directorio ... }

Descripción

El mandato chmod modifica los bits de modalidad y las listas de control de acceso (ACL) ampliadas de los archivos o directorios especificados. La modalidad puede definirse simbólicamente o numéricamente (modalidad absoluta).

Cuando se encuentra un enlace simbólico y no se ha especificado el distintivo -h, el mandato chmod cambia la modalidad del archivo o directorio al que señala el enlace y no la modalidad del enlace en sí. Si especifica el distintivo -h, el mandato chmod impide este cambio de modalidad.

Si especifica tanto el distintivo -h como el distintivo -R, el mandato chmod desciende por los directorios especificados recursivamente y, cuando encuentra un enlace simbólico, la modalidad del archivo o directorio al que señala el enlace no cambia.

Distintivos

-f Suprime todo el informe de errores excepto los permisos no válidos y las sentencias de utilización.
-h Suprime un cambio de modalidad para el archivo o directorio al que señala el enlace simbólico encontrado.
Nota:
Este comportamiento es ligeramente diferente del comportamiento del distintivo -h de los mandatos chgrp y chown, ya que los bits de modalidad no pueden establecerse en enlaces simbólicos.
-R Desciende sólo por los directorios recursivamente, según lo especificado por el patrón Archivo...|Directorio.... El distintivo -R cambia los bits de modalidad de archivo de cada directorio y de todos los archivos coincidentes con el patrón especificado. Consulte el Ejemplo 6.

Cuando se encuentra un enlace simbólico y el enlace señala a un directorio, los bits de modalidad de archivo de ese directorio se cambian, pero el directorio ya no vuelve a cruzarse.

Modalidad simbólica

Para especificar una modalidad en formato simbólico, debe especificar tres conjuntos de distintivos.

Nota:
No separe los distintivos con espacios.

El primer conjunto de distintivos especifica a quién se otorgan o deniegan los permisos especificados, del siguiente modo:

u Propietario de archivo.
g Entradas ACL ampliadas y de grupo pertenecientes al grupo del archivo.
o Todos los demás.
a Usuario, grupo y todos los demás. El distintivo a tiene el mismo efecto que especificar juntos los distintivos ugo. Si no se especifica ninguno de estos distintivos, el valor predeterminado es el distintivo a y se aplica la máscara de creación de archivos (umask).

El segundo conjunto de distintivos especifica si los permisos deben eliminarse, aplicarse o establecerse:

- Elimina los permisos especificados.
+ Aplica los permisos especificados.
= Borra el campo del permiso especificado y lo establece en el permiso especificado. Si no especifica un permiso a continuación de =, el mandato chmod elimina todos los permisos del campo seleccionado.

El tercer conjunto de distintivos especifica los permisos que deben eliminarse, aplicarse o establecerse:

r Permiso de lectura.
w Permiso de escritura.
x Permiso de ejecución para archivos; permiso de búsqueda para directorios.
X Permiso de ejecución para archivos si los bits de modalidad actuales (no modificados) tienen establecido al menos uno de los bits de usuario, grupo u otros bits de ejecución. El distintivo X se pasa por alto si se especifica el parámetro Archivo y ninguno de los bits de ejecución está establecido en los bits de modalidad actuales.

Permiso de búsqueda para directorios.

s Permiso para Establecer ID de usuario durante ejecución si se ha especificado o está implícito el distintivo u. Permiso para Establecer ID de grupo durante ejecución si se ha especificado o está implícito el distintivo g.
t Para directorios, indica que sólo los propietarios de archivos pueden enlazar o desenlazar archivos en el directorio especificado. Para archivos, establece el atributo save-text.

Modalidad numérica o absoluta

El mandato chmod también permite utilizar notación octal para la modalidad. La modalidad numérica es la suma de uno o varios de los siguientes valores:

4000 Establece el ID de usuario durante la ejecución.
2000 Establece el ID de grupo durante la ejecución.
1000 Establece el permiso de enlace para directorios o establece el atributo save-text para archivos.
0400 Permite la lectura por parte del propietario.
0200 Permite la grabación por parte del propietario.
0100 Permite la ejecución o la búsqueda por parte del propietario.
0040 Permite la lectura por parte del grupo.
0020 Permite la grabación por parte del grupo.
0010 Permite la ejecución o la búsqueda por parte del grupo.
0004 Permite la lectura por parte de otros.
0002 Permite la grabación por parte de otros.
0001 Permite la ejecución o la búsqueda por parte de otros.
Notas:
  1. La especificación de la modalidad numéricamente inhabilita las Listas de control de acceso (ACL) ampliadas que puedan existir.
  2. El cambio de permisos de acceso de grupo simbólicamente también afecta a las entradas de ACL ampliada. A las entradas de grupo de la ACL que son iguales al grupo propietario del archivo se les deniega cualquier permiso que se haya eliminado de la modalidad.
  3. Puede especificar varias modalidades simbólicas separadas por comas. Las operaciones se realizan en el orden de aparición, de izquierda a derecha.
  4. Debe especificar la modalidad simbólicamente o utilizar un octal explícito de 4 caracteres con un cero inicial (por ejemplo, 0755) al eliminar el permiso para Establecer ID de grupo durante ejecución de los directorios.

Seguridad

Control de acceso: este programa debe instalarse como un programa de usuario normal en la Base de cálculo de confianza.

Sólo el propietario del archivo o el usuario raíz pueden cambiar la modalidad de un archivo.

Estado de salida

Este mandato devuelve los siguientes valores de salida:

0 El mandatos e ha ejecutado satisfactoriamente y todos los cambios solicitados se han realizado.
>0 Se ha producido un error.

Ejemplos

  1. Para añadir un tipo de permiso a varios archivos:

    chmod  g+w  chap1  chap2

    Este mandato añade permiso de escritura para los miembros de grupo sobre los archivos chap1 y chap2.

  2. Para realizar varios cambios de permiso simultáneamente:

    chmod  go-w+x  mydir

    Este mandato deniega a los miembros de grupo y a otros el permiso para crear o suprimir archivos en mydir (go-w) y permite a los miembros de grupo y a otros buscar en mydir o utilizarlo en un nombre de vía de acceso (go+x). Es equivalente a la secuencia de mandatos:

    chmod  g-w  mydir
    chmod  o-w  mydir
    chmod  g+x  mydir
    chmod  o+x  mydir
  3. Para permitir sólo al propietario utilizar un procedimiento de shell como mandato:

    chmod  u=rwx,go= cmd

    Este mandato otorga los permisos de lectura, escritura y ejecución al usuario que es propietario del archivo (u=rwx). También deniega al grupo y a otros el permiso para acceder a cmd de ningún modo (go=).

    Si tiene permiso para ejecutar el archivo de mandatos de shell cmd, puede ejecutarlo especificando:

    cmd
    Nota:
    Dependiendo de la variable de shell PATH, puede que necesite especificar la vía de acceso completa al archivo cmd.
  4. Para utilizar modalidades Establecer ID:

    chmod  ug+s  cmd

    Cuando se ejecuta el mandato cmd, los ID de usuario y grupo en vigor se establecen en los que son propietarios del archivo cmd. Sólo se cambian los ID en vigor asociados con el proceso hijo que ejecuta el mandato cmd. Los ID en vigor de la sesión de shell permanecen sin cambios.

    Esta característica permite otorgar acceso a archivos restringidos. Suponga que el programa cmd tiene habilitada la modalidad Establecer ID de usuario y es propiedad de un usuario llamado dbms. El usuario dbms no es realmente una persona, sino que puede estar asociado a un sistema de gestión de bases de datos. El usuario betty no tiene permiso para acceder a ninguno de los archivos de datos de dbms. Sin embargo, sí tiene permiso para ejecutar el mandato cmd. Cuando lo hace, su ID de usuario en vigor cambia temporalmente a dbms, de modo que el programa cmd pueda acceder a los archivos de datos que son propiedad del usuario dbms.

    De ese modo, el usuario betty puede utilizar el mandato cmd para acceder a los archivos de datos, pero no puede dañarlos accidentalmente con los mandatos de shell estándar.

  5. Para utilizar el formato de modalidad absoluta del mandato chmod:

    chmod  644  text

    Este mandato establece el permiso de lectura y escritura para el propietario, y la modalidad de sólo lectura para el grupo y otros. También elimina todas las ACL ampliadas que puedan estar asociadas con el archivo.

  6. Para descender recursivamente por los directorios y cambiar los permisos de archivo y directorio dada la estructura en árbol:

    ./dir1/dir2/file1

    ./dir1/dir2/file2

    ./dir1/file1

    especifique este secuencia de mandatos:

    chmod -R 777 f*

    que cambiará los permisos en ./dir1/file1.

    Pero, dada esta estructura en árbol:

    ./dir1/fdir2/file1

    ./dir1/fdir2/file2

    ./dir1/file3

    la secuencia de mandatos:

    chmod -R 777 f*

    cambiará los permisos en

    ./dir1/fdir2

    ./dir1/fdir2/file1

    ./dir1/fdir2/file2

    ./dir1/file3

Archivo

/usr/bin/chmod Contiene el mandato chmod.

Enviar comentarios |  Valorar esta página