Comando chmod de Linux



comando chmod

En Tipo Unix sistemas operativos, el chmod comando establece el permisos de archivos o directorios .



Esta página describe el GNU / Linux versión de chmod .

Descripción

En tipo Unix sistemas operativos , un conjunto de indicadores asociados con cada archivo determina quién puede acceder a ese archivo y cómo pueden acceder a él. Estas banderas se llaman archivo permisos o modos , como en 'modo de acceso'. El nombre del comando chmod significa 'modo de cambio'. Restringe la forma en que se puede acceder a un archivo.



Para obtener más información sobre los modos de archivo, consulte: ¿Qué son los permisos de archivo y cómo funcionan? en nuestra documentación del umask mando. Contiene una descripción completa de cómo definir y especificar permisos de archivos.

En general, chmod los comandos toman la forma:



|_+_|

Si no opciones están especificados, chmod modifica los permisos del archivo especificado por Nombre del archivo a los permisos especificados por permisos .

permisos define los permisos para el propietario del archivo (el 'usuario'), los miembros del grupo que posee el archivo (el 'grupo') y cualquier otra persona ('otros'). Hay dos formas de representar estos permisos: con símbolos (caracteres alfanuméricos) o con números octales (los dígitos 0 mediante 7 ).

Digamos que eres el propietario de un archivo llamado mi archivo y desea establecer sus permisos para que:

  1. la tu ser puede r ead, en rito, ye x escudriñarlo;
  2. miembros de tu gramo grupo puede r ead ye x escudriñarlo; y
  3. o los suyos solo pueden r léelo.

Este comando hará el truco:

|_+_|

Este ejemplo utiliza la notación de permisos simbólicos. Las cartas tu , gramo , y o representar ' usuario ', ' grupo ', y ' otro '. El signo igual (' = ') significa' establecer los permisos exactamente así 'y las letras' r ', ' en ', y ' x 'representan' leer ',' escribir 'y' ejecutar ', respectivamente. Las comas separan las diferentes clases de permisos y no hay espacios entre ellas.

Aquí está el comando equivalente usando la notación de permisos octales:

|_+_|

Aquí los dígitos 7 , 5 , y 4 cada uno representa individualmente los permisos para el usuario, grupo y otros, en ese orden. Cada dígito es una combinación de números 4 , 2 , 1 , y 0 :

  • 4 significa 'leer',
  • 2 significa 'escribir',
  • 1 significa 'ejecutar', y
  • 0 significa 'sin permiso'.

Entonces 7 es la combinación de permisos 4 + 2 + 1 (leer, escribir y ejecutar), 5 es 4 + 0 + 1 (leer, no escribir y ejecutar), y 4 es 4 + 0 + 0 (leer, no escribir y no ejecutar).

Sintaxis

|_+_|

Opciones

-c , --cambios Como --verboso , pero proporciona una salida detallada solo cuando se realiza un cambio.
-F , --silencio , --tranquilo Modo silencioso; suprime la mayoría de los mensajes de error.
-v , --verboso Modo detallado; generar un mensaje de diagnóstico para cada archivo procesado.
--no-preservar-raíz No tratar ' / ' (la raíz directorio) de cualquier forma especial, que es la configuración predeterminada.
- preservar-raíz No opere recursivamente en ' / '.
--referencia = RFILE Establecer permisos para que coincidan con los del archivo RFILE , ignorando cualquier especificación MODO .
-R , --recursivo Cambiar archivos y directorios recursivamente.
--ayuda Muestre un mensaje de ayuda y salga.
--versión Producción versión información y salida.

Descripción técnica

chmod cambia el modo de archivo de cada especificado EXPEDIENTE de acuerdo a MODO , que puede ser una representación simbólica de los cambios a realizar o un número octal que representa el patrón de bits para los nuevos bits de modo.

El formato de un modo simbólico es:

[ ugoa ...][[ +-= ][ permanentes ...]...]

dónde permanentes es cero o más letras del conjunto r , en , x , X , s y t , o una sola letra del conjunto tu , gramo , y o . Se pueden dar varios modos simbólicos, separados por comas.

Una combinación de las letras tu , gramo , o , y a controla el acceso de los usuarios al archivo que se cambiará: el usuario que lo posee ( tu ), otros usuarios del grupo del archivo ( gramo ), otros usuarios que no están en el grupo del archivo ( o ), o todos los usuarios ( a ). Si no se da ninguno de estos, el efecto es como si a se dieron, pero los bits que se establecen en el umask no se ven afectados.

El operador + hace que los bits de modo de archivo seleccionados se agreguen a los bits de modo de archivo existentes de cada archivo; - hace que se eliminen; y = hace que se agreguen y que se eliminen bits no mencionados, excepto que los bits de ID de grupo y usuario establecidos no mencionados de un directorio no se ven afectados.

Las cartas r , en , x , X , s y t seleccionar bits de modo de archivo para los usuarios afectados: leer ( r ), escribir ( en ), ejecutar ( x ), ejecutar solo si el archivo es un directorio o ya tiene permiso de ejecución para algún usuario ( X ), establezca el ID de usuario o grupo en la ejecución ( s ), indicador de eliminación restringida o bit adhesivo ( t ). Para directorios, las opciones de ejecución X y X definir el permiso para ver el contenido del directorio.

En lugar de una o más de estas letras, puede especificar exactamente una de las letras tu , gramo , o o : los permisos otorgados al usuario propietario del archivo ( tu ), los permisos otorgados a otros usuarios que son miembros del grupo del archivo ( gramo ) y los permisos otorgados a los usuarios que no se encuentran en ninguna de las dos categorías anteriores ( o ).

Un modo numérico es de uno a cuatro dígitos octales ( 0 - 7 ), derivado sumando los bits con valores 4 , 2 , y 1 . Se supone que los dígitos omitidos son ceros iniciales. El primer dígito selecciona el ID de usuario configurado ( 4 ) y configure el ID de grupo ( 2 ) y eliminación restringida o pegajosa ( 1 ) atributos. El segundo dígito selecciona los permisos para el usuario que posee la lectura ( 4 ), escribir ( 2 ) y ejecutar ( 1 ); el tercero selecciona permisos para otros usuarios en el grupo del archivo, con los mismos valores; y el cuarto para otros usuarios que no están en el grupo del archivo, con los mismos valores.

chmod nunca cambia los permisos de enlaces simbólicos ; la chmod La llamada al sistema no puede cambiar sus permisos. Sin embargo, esto no es un problema ya que nunca se utilizan los permisos de los enlaces simbólicos. Sin embargo, para cada enlace simbólico enumerado en el línea de comando , chmod cambia los permisos del archivo apuntado. A diferencia de, chmod ignora los enlaces simbólicos encontrados durante recursivo recorridos de directorio.

Bits setuid y setgid

chmod borra el bit set-group-ID de un archivo normal si el ID de grupo del archivo no coincide con el ID de grupo efectivo del usuario o con uno de los ID de grupo suplementarios del usuario, a menos que el usuario tenga los privilegios adecuados. Las restricciones adicionales pueden hacer que los bits set-user-ID y set-group-ID de MODO o RFILE para ser ignorado. Este comportamiento depende de la política y la funcionalidad del subyacente. chmod llamada al sistema. En caso de duda, compruebe el comportamiento del sistema subyacente.

chmod conserva los bits de set-user-ID y set-group-ID de un directorio a menos que especifique explícitamente lo contrario. Puede configurar o borrar los bits con modos simbólicos como u + s y g-s , y puede establecer (pero no borrar) los bits con un modo numérico.

Bandera de eliminación restringida (o 'bit pegajoso')

La bandera de eliminación restringida o bit adhesivo es un solo bit, cuya interpretación depende del tipo de archivo. Para los directorios, evita que los usuarios sin privilegios eliminen o cambien el nombre de un archivo en el directorio a menos que sean propietarios del archivo o del directorio; esto se llama el indicador de eliminación restringida para el directorio, y se encuentra comúnmente en directorios de escritura mundial como / tmp . Para archivos normales en algunos sistemas más antiguos, el bit guarda la imagen de texto del programa en el dispositivo de intercambio para que se cargue más rápido cuando se ejecuta; esto se llama la parte pegajosa.

Ver permisos en la lista de archivos

Una forma rápida y sencilla de enumerar los permisos de un archivo es con la lista larga ( -l ) opción de la ls mando. Por ejemplo, para ver los permisos de file.txt , puedes usar el comando:

|_+_|

... que muestra un resultado similar al siguiente:

|_+_|

Esto es lo que significa cada parte de esta información:

- El primer carácter representa el tipo de archivo: ' - 'para un archivo normal,' D 'para un directorio,' l 'para un enlace simbólico.
rwx Los siguientes tres caracteres representan los permisos para el propietario del archivo: en este caso, el propietario puede r leer de, en rito a, mineral x ecute el archivo.
rw- Los siguientes tres caracteres representan los permisos de los miembros del grupo de archivos. En este caso, cualquier miembro del grupo propietario del archivo puede r leer de o en rito al archivo. El guión final es un marcador de posición; los miembros del grupo no tienen permiso para ejecutar este archivo.
r-- Los permisos para 'otros' (todos los demás). Otros solo pueden r lea este archivo.
1 El número de enlaces físicos a este archivo.
esperanza El propietario del archivo.
esperanza El grupo al que pertenece el archivo.
123 El tamaño del archivo en bloques .
Feb 03 15:36 El mtime del archivo (fecha y hora de la última modificación del archivo).
file.txt El nombre del archivo.

Ejemplos de

|_+_|

Establecer los permisos de file.htm a 'propietario puede leer y escribir; el grupo solo puede leer; otros solo pueden leer '.

|_+_|

Recursivamente ( -R ) Cambiar los permisos del directorio mis archivos y todas las carpetas y archivos que contiene, al modo 755 . El usuario puede leer, escribir y ejecutar; los miembros del grupo y otros usuarios pueden leer y ejecutar, pero no pueden escribir.

|_+_|

Cambiar los permisos del propietario de ejemplo.jpg para que el propietario pueda leer y escribir el archivo. No cambie los permisos del grupo ni de otros.

|_+_|

Establezca el bit 'Set-User-ID' de comphope.txt , para que cualquier persona que intente acceder a ese archivo lo haga como si fuera el propietario del archivo.

|_+_|

Lo contrario del comando anterior; desestablece el bit SUID.

|_+_|

Establecer los permisos de file.cgi para 'leer, escribir y ejecutar por el propietario' y 'leer y ejecutar por el grupo y todos los demás'.

|_+_|

Establecer el permiso de file.txt a 'leer y escribir por todos'.

|_+_|

Realiza lo mismo que el comando anterior, utilizando notación simbólica.

chown - Cambiar la propiedad de archivos o directorios.
getfacl - Mostrar listas de control de acceso a archivos.
ls - Lista el contenido de un directorio o directorios.