English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Manual de referencia de Linux

Comandos de Linux completos

Comando chmod de Linux

El comando chmod de Linux (pangramático: change mode) es un comando para controlar los permisos de los archivos de los usuarios/Linux

Los permisos de acceso a los archivos en Unix se dividen en tres niveles: el propietario del archivo (Owner), el grupo del usuario (Group) y otros usuarios (Other Users).

Los propietarios del archivo y los superusuarios pueden modificar los permisos de los archivos o directorios. Puede usar el modo absoluto (modo de número octal) o especificar los permisos del archivo mediante el esquema de símbolos. : Todos los usuarios

Sintaxis

chmod [-cfvR] [--help] [--version] mode file...

Explicación de los parámetros

mode : Cadenas de configuración de permisos, formato como se muestra a continuación:

[ugoa...][[+-=][rwxX]...][,...]

Entre ellos:

  • u significa el propietario del archivo, g significa que pertenece al mismo grupo que el propietario del archivo, o significa otras personas, a significa que todos los tres son.

  • + significa agregar permisos,- significa cancelar permisos, = significa establecer permisos de manera única.

  • r significa que se puede leer, w significa que se puede escribir, x significa que se puede ejecutar, X significa que solo cuando el archivo es un subdirectorio o el archivo ya se ha configurado como ejecutable.

Otras explicaciones de los parámetros:

  • -c : Si el permiso del archivo se ha cambiado realmente, mostrar la acción de cambio

  • -f : Si no se puede cambiar el permiso del archivo, no mostrar mensajes de error

  • -v : Mostrar detalles del cambio de permisos

  • -R : Realizar el cambio de permisos de los archivos y subdirectorios en el directorio actual de manera recursiva (es decir, cambiar uno por uno de manera recursiva)

  • --help : Mostrar información de ayuda

  • --version : Mostrar versión

Patrón de símbolo

Se pueden configurar varios elementos mediante el esquema de símbolos: who (tipo de usuario), operator (operador) y permission (permiso), la configuración de cada elemento se puede separar por comas. El comando chmod modificará los permisos de acceso al archivo para el tipo de usuario especificado por who, el tipo de usuario se indica por una o más letras en la posición de who, como se muestra en la tabla de patrones de símbolos de who:

whoEl tipo de usuarioDescripción
uuserEl propietario del archivo
ggroupEl grupo al que pertenece el propietario del archivo
oothersTodos los demás usuarios
aallEl usuario utilizado, equivalente a ugo

El esquema de patrones de símbolos del operador:

OperadorDescripción
+Añadir permisos para el tipo de usuario especificado
-Quitar los permisos del tipo de usuario especificado
=Establecer la configuración de permisos para el usuario especificado, es decir, restablecer todos los permisos del tipo de usuario

Tabla de símbolos del modo de permiso de permission:

ModoNombreDescripción
rLeerEstablecer permisos de lectura
wEscribirEstablecer permisos de escritura
xPermisos de ejecuciónEstablecer permisos de ejecución
XPermisos de ejecución especialesSólo cuando el archivo es un archivo de directorio u otros tipos de usuarios tienen permisos de ejecución, se establecen los permisos de ejecución del archivo
ssetuid/gidAl ejecutar el archivo, según el tipo de usuario especificado por el parámetro 'who', establecer los permisos setuid o setgid del archivo
tBit de pegadoEstablecer el bit de pegado, solo el superusuario puede establecer este bit, y solo el propietario del archivo 'u' puede usar este bit

sintaxis octal

chmod puede especificar permisos con números octales. Los bits de permisos de archivos o directorios se especifican por9bits de permiso para controlar, cada tres bits forman un grupo, que son los permisos de lectura, escritura y ejecución del propietario del archivo (User), los permisos de lectura, escritura y ejecución del grupo (Group) y los permisos de lectura, escritura y ejecución de otros usuarios (Other). Históricamente, los permisos de archivo se colocaron en una máscara de bits, donde los bits especificados se configuraron como1,para indicar que una clase tiene la prioridad correspondiente.

#PermisosrwxBinario
7Leer + Escribir + Ejecutarrwx111
6Leer + Escribirrw-110
5Leer + Ejecutarr-x101
4Sólo leerr--100
3Escribir + Ejecutar-wx011
2Sólo escribir-w-010
1Sólo ejecutar--x001
0Sin---000

Por ejemplo, 765 Se interpretará de la siguiente manera:

  • Los permisos del propietario se expresan con números: la suma total de los tres dígitos de los permisos del propietario. Por ejemplo, rwx, que es 4+2+1 ,debería ser 7。

  • Los permisos del grupo de usuarios se expresan con números: la suma total de los dígitos de los permisos del grupo. Por ejemplo, rw- ,que es 4+2+0, debería ser 6。

  • Expresión numérica de permisos de otros usuarios: la suma total de los dígitos de los permisos de otros usuarios. Por ejemplo, r-x, que es 4+0+1 ,debería ser 5。

Ejemplo en línea

Establecer permisos de lectura para el archivo file1.txt Establecer permisos de lectura para todos los usuarios:

chmod ugo+r file1.txt

Establecer permisos de lectura para el archivo file1.txt Establecer permisos de lectura para todos los usuarios:

chmod a+r file1.txt

Establecer permisos de lectura para el archivo file1.txt y file2.txt Establecer permisos de escritura para el propietario del archivo y los miembros del mismo grupo, pero no para otras personas:

chmod ug+w,o-w file1.txt file2.txt

Para ex1.py Añadir permisos de ejecución al propietario del archivo:

chmod u+x ex1.py

Establecer todos los archivos y subdirectorios en el directorio actual para que sean legibles por cualquier persona:

chmod -R a+r *

Además, chmod también puede representar permisos con números, como:

chmod 777 file

La sintaxis es:

chmod abc file

Donde a, b, c son números, que representan respectivamente los permisos de User, Group y Other.

r=4,w=2,x=1

  • Para rwx atributo 4+2+1=7;

  • Para rw- Atributo 4+2=6;

  • Para r-x atributo entonces 4+1=5。

chmod a=rwx file

y

chmod 777 file

el efecto es el mismo

chmod ug=rwx,o=x file

y

chmod 771 file

el efecto es el mismo

Si se utiliza chmod 4755 filename da a este programa los permisos de root。

Más detalles

ComandoDescripción
chmod a+r filedar permisos de lectura a todos los usuarios del file
chmod a-x fileeliminar permisos de ejecución para todos los usuarios del file
chmod a+rw filedar permisos de lectura y escritura a todos los usuarios del file
chmod +rwx filedar permisos de lectura, escritura y ejecución a todos los usuarios del file
chmod u=rw,go=  fileestablecer permisos de lectura y escritura para el propietario del file, vaciar todos los permisos del grupo de usuarios y otros usuarios para el file (espacio representa sin permisos)
chmod -R u+r,go-r docsdar permisos de lectura a todos los archivos en la jerarquía de directorios docs y eliminar permisos de lectura para el grupo de usuarios y otros usuarios
chmod 664 fileestablecer permisos de lectura y escritura para el propietario y el grupo de usuarios del file, establecer permisos de lectura para otros usuarios
chmod 0755 fileequivalente a u=rwx (4+2+1), go = rx (4+1 & 4+1)。0 Sin modo especial。
chmod 4755 file4se configuró configuraciónID de usuariobits, lo que queda es equivalente a u=rwx (4+2+1), go = rx (4+1 & 4+1)。
find path/ -type d -exec chmod a-x {} \;eliminar permisos ejecutables para path/y todos sus directorios (sin incluir archivos) de todos los usuarios, utilice'-type f'que coincida con el archivo
find path/ -type d -exec chmod a+x {} \;Permite que todos los usuarios naveguen o accedan a través del directorio path/

Comandos de Linux completos