English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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
chmod [-cfvR] [--help] [--version] mode file...
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
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:
who | El tipo de usuario | Descripción |
---|---|---|
u | user | El propietario del archivo |
g | group | El grupo al que pertenece el propietario del archivo |
o | others | Todos los demás usuarios |
a | all | El usuario utilizado, equivalente a ugo |
El esquema de patrones de símbolos del operador:
Operador | Descripció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:
Modo | Nombre | Descripción |
---|---|---|
r | Leer | Establecer permisos de lectura |
w | Escribir | Establecer permisos de escritura |
x | Permisos de ejecución | Establecer permisos de ejecución |
X | Permisos de ejecución especiales | Só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 |
s | setuid/gid | Al ejecutar el archivo, según el tipo de usuario especificado por el parámetro 'who', establecer los permisos setuid o setgid del archivo |
t | Bit de pegado | Establecer el bit de pegado, solo el superusuario puede establecer este bit, y solo el propietario del archivo 'u' puede usar este bit |
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.
# | Permisos | rwx | Binario |
---|---|---|---|
7 | Leer + Escribir + Ejecutar | rwx | 111 |
6 | Leer + Escribir | rw- | 110 |
5 | Leer + Ejecutar | r-x | 101 |
4 | Sólo leer | r-- | 100 |
3 | Escribir + Ejecutar | -wx | 011 |
2 | Sólo escribir | -w- | 010 |
1 | Sólo ejecutar | --x | 001 |
0 | Sin | --- | 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。
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.
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。
Comando | Descripción |
---|---|
chmod a+r file | dar permisos de lectura a todos los usuarios del file |
chmod a-x file | eliminar permisos de ejecución para todos los usuarios del file |
chmod a+rw file | dar permisos de lectura y escritura a todos los usuarios del file |
chmod +rwx file | dar permisos de lectura, escritura y ejecución a todos los usuarios del file |
chmod u=rw,go= file | establecer 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 docs | dar 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 file | establecer permisos de lectura y escritura para el propietario y el grupo de usuarios del file, establecer permisos de lectura para otros usuarios |
chmod 0755 file | equivalente a u=rwx (4+2+1), go = rx (4+1 & 4+1)。0 Sin modo especial。 |
chmod 4755 file | 4se 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/ |