Gestión de derechos de Linux (explicación súper detallada)

introducción

Sabemos que existen dos tipos de usuarios en Linux: el usuario administrador root, y los usuarios ordinarios .
El usuario administrador root puede hacer cualquier cosa en Linux, mientras que los usuarios comunes solo pueden hacer cosas limitadas, puede usar el comando su para cambiar los tipos de usuario su usery su root(root se puede omitir):

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
(El símbolo del sistema para usuarios comunes es $, y el símbolo del sistema para usuarios raíz es #).
Para cambiar a raíz, un usuario común debe ingresar la contraseña de la cuenta raíz.

Para Linux existen dos tipos de usuarios, es decir, dos roles. Entonces, ¿un archivo o directorio tiene diferentes permisos para diferentes usuarios? Por supuesto que los hay. En este artículo, presentaré la gestión de permisos de los archivos de Linux:

Clasificación de los visitantes del archivo

Para un archivo o directorio, hay tres roles en Linux:

  1. Propietario del archivo : u(usuario)
  2. Grupo del propietario del archivo : g(grupo)
  3. Otros usuarios : o(otros)

El propietario, el grupo y otros usuarios son solo roles simples, y en realidad no determina que un determinado usuario deba tener ciertos permisos en un archivo .
El permiso de un usuario para un archivo depende no solo de la función del usuario en el archivo, sino también de los atributos del archivo, es decir, qué permisos otorga el archivo a la función. Solo combinando los dos podemos saber los permisos de un usuario para un archivo.

Tipos de archivos y derechos de acceso

Cuando llvemos las propiedades de un archivo, se muestran muchas propiedades del archivo, incluido el tipo de archivo, los derechos de acceso a los diferentes roles, el tamaño del archivo, la hora de la última modificación, el nombre del archivo, etc.:
inserte la descripción de la imagen aquí
la primera columna es el tipo de archivo y la siguiente El 9 aparece como derechos de acceso, el siguiente número es el número de enlaces, los siguientes dos nombres son el propietario y el grupo, y finalmente la hora de la última modificación y el nombre del archivo:
inserte la descripción de la imagen aquí

Tipo de archivo

En Linux, hay varios tipos de archivos:

  1. d:carpeta
  2. -: archivo normal
  3. l: enlace suave (como un acceso directo de Windows)
  4. b: archivo de dispositivo de bloque (como disco duro, unidad óptica, etc.)
  5. p: archivo de tubería
  6. c: archivo de dispositivo de caracteres (como dispositivos seriales como pantallas)
  7. s: archivo de toma

permiso de acceso

Hay tres tipos de permisos de usuario para un archivo: de lectura, de escritura y de ejecución :

  1. Medios legibles r(leer):
    con permisos legibles, puede leer el contenido del archivo
  2. Medios de escritura w(escribir):
    con permiso de escritura, puede escribir o eliminar contenido en el archivo
  3. Medios ejecutables x(ejecutar):
    con permisos ejecutables, el archivo se puede ejecutar
  4. -Indica que no hay un permiso determinado

Hay 9 columnas que describen los permisos en las propiedades del archivo anterior, que son, respectivamente, los permisos para el propietario, los permisos para el grupo al que pertenece y los permisos para otros usuarios . Las descripciones de los tres permisos para cada función son de lectura, escritura y ejecución , y estos órdenes son fijos.

Entonces, si hay un carácter correspondiente en la posición de un determinado permiso de un determinado rol, significa que el rol modificado tiene el permiso correspondiente. Si es así, significa que -el usuario no tiene el permiso:
Por ejemplo, en este testffile:
inserte la descripción de la imagen aquí
las primeras tres columnas son permisos para el propietario, For r w -, significa que el propietario del archivo es legible y escribible, pero no ejecutable;
las tres columnas del medio son el grupo r w -al que pertenece el archivo, y es, lo que indica que el grupo al que pertenece el archivo es legible y escribible, pero no ejecutable;
las últimas tres columnas son otros usuarios, para r - -, lo que indica que otros usuarios pueden leerlo, no escribirlo y ejecutarlo

Método de representación del valor de permiso de archivo

Hay posiciones fijas para los tres permisos. Por supuesto, los permisos de un rol a un archivo se pueden expresar en forma de 0 y 1 binarios .
De esta forma, un archivo tiene 2^3=8 números binarios diferentes para permisos de rol:
inserte la descripción de la imagen aquí

comando para modificar permisos

chmod modificar permisos de archivo

Los permisos del archivo se pueden modificar usando chmodel comando Esta operación solo la puede realizar el propietario del archivo y el superusuario root (se decía que el usuario root ignora los permisos)

Modificar por rol +/-/= permisos

chmod [选项] 用户+/-/=某项权限 文件名
Utilice este formato para modificar los permisos del archivo
.

Entre ellos, los símbolos que representan roles son u(propietario), g(grupo), o(otros usuarios), a(todos los usuarios);
los símbolos que representan permisos son r(permiso de lectura), w(permiso de escritura), x(permiso de ejecución);
los símbolos +(para Agregar la autoridad indicada por el código de autoridad al ámbito de autoridad), -(cancelar la autoridad indicada por el código de autoridad del ámbito de autoridad), =(otorgar la autoridad indicada por el código de autoridad al ámbito de autoridad):

gRestar wpermisos del grupo al que pertenece Otorgar permisos directamente
inserte la descripción de la imagen aquí
al grupo al que pertenece Agregar permisos a otros usuariosgw
inserte la descripción de la imagen aquí
ow
inserte la descripción de la imagen aquí

Use la opción -R para modificar recursivamente los permisos de los archivos del directorio
inserte la descripción de la imagen aquí

Modificado por tres números octales

chmod [选项] 三个八进制数 文件名
Permisos para modificar usuarios

Entre ellos, el primer número octal representa el permiso de propietario modificado, el segundo representa el permiso de grupo modificado y el tercero representa otros permisos de usuario.
En el frente, hemos usado 8 números octales para representar todas las combinaciones de permisos, por lo que podemos usarlos directamente aquí:
inserte la descripción de la imagen aquí
de manera similar, -Rlas opciones de uso se pueden usar para el procesamiento recursivo.

chown modificar propietario

chown [选项] 用户名 文件名
Se utiliza para modificar el propietario del archivo, solo el usuario root puede modificar

inserte la descripción de la imagen aquí
-R la opción para procesar recursivamente los archivos en el directorio:
inserte la descripción de la imagen aquí

chgrp modifica el grupo de pertenencia

chgrp [选项] 组名 文件名
El usuario del grupo utilizado para cambiar el archivo solo puede ser utilizado por el usuario root

Primero podemos crear un grupo qqq y crear un usuario temporal, convirtiendo a qqq en su principal grupo de usuarios. Luego use para chgrpcambiar el grupo al que pertenece el archivo:
(Se puede lograr mediante groupadd [用户组名称](la creación de un grupo qqq), y useradd -g [用户组名称] [新用户名称](la creación de un nuevo usuario y hacer de este grupo el grupo de usuarios principal) instrucciones)
inserte la descripción de la imagen aquí
-Rlas opciones pueden realizar el procesamiento recursivo de directorios:

inserte la descripción de la imagen aquí

umask modificar o ver máscara de permiso de archivo

umaskSe puede usar para ver la máscara de permisos de archivos
umask [三个八进制数]Se usa para modificar la máscara de permisos de archivos

Antes de presentar el uso de este comando, primero comprendamos el papel de la máscara de permiso de archivo:

Permisos cuando se creó el archivo

El permiso predeterminado al crear un archivo normal es 0666, y el permiso predeterminado al crear un archivo de directorio es 0777. Pero después de que creamos un nuevo archivo o directorio, sus permisos no son 0666 y 0777: los permisos
inserte la descripción de la imagen aquí
de un nuevo archivo son en realidad los permisos predeterminados menos la máscara de permiso de archivo del usuario (octal) , para binarios de tres dígitos y En otras palabras, los permisos del usuario la máscara de permiso de archivo se invierte bit a bit, y luego el permiso predeterminado es AND bit a bit (&).

La máscara de permiso de archivo predeterminada para los usuarios normales es 0002, y la máscara de permiso de archivo predeterminada para los usuarios root es.0022
Podemos usar umaskel comando para ver:
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Para el archivo testf2 y el archivo testdir2 anteriores, sus permisos iniciales son 666 - 002 = 664 ( rw- rw- r--) y 777 - 002 = 775 ( rwx rwx r-x). También se puede calcular en binario.

Úselo umask [三个八进制数]para modificar la máscara de permisos de archivos: después de
inserte la descripción de la imagen aquí
cambiar la máscara de permisos de archivos 0026, el permiso del archivo ordinario recién creado es 666 - 026 = 640 ( rw- r-- ---).

permisos de directorio

Para directorios:

  1. Permisos ejecutables: si el directorio no tiene permisos ejecutables, no puede acceder al directorio mediante CD.
  2. Permiso de lectura: si el directorio no tiene permiso de lectura, no puede usar comandos como ls para ver el contenido de los archivos en el directorio
  3. Permisos de escritura: si el directorio no tiene permisos de escritura, los archivos no se pueden crear en el directorio y los archivos no se pueden eliminar en el directorio

Podemos verificar que creamos un usuario temporal antes, y esta carpeta no tiene permisos para otros usuarios y grupos: en este momento,
inserte la descripción de la imagen aquí
como cuenta qiuzeyu, solo puede ver este directorio y no puede hacer nada más:
inserte la descripción de la imagen aquí
Pasamos en los permisos temporales a otros usuarios a su vez (operación raíz):
solo x: (puede ingresar, no puede ver y modificar)
inserte la descripción de la imagen aquí
xy r(puede ingresar, ver, no puede modificar)
inserte la descripción de la imagen aquí
r w x(puede ingresar, ver, modificar)
inserte la descripción de la imagen aquí

Sin embargo, aquí hay un problema, es decir, siempre que el usuario tenga el permiso de escritura de un determinado directorio, incluso si no tiene el permiso de escritura de los archivos en el directorio, puede eliminar directamente los archivos en el directorio. (que se muestra en el directorio bajo temp) tempdir:

Cuando el directorio tempdir tiene permisos de escritura para otros usuarios, puede eliminar directamente los archivos en este directorio, independientemente de si tiene permisos de escritura para los archivos que contiene:
inserte la descripción de la imagen aquí
esto es absurdo, es una laguna y no puede escribirlo , pero puede eliminarlo directamente este archivo.

Usar el bit adhesivo puede resolver este problema:

poco pegajoso

El sticky bit toma el lugar de los permisos ejecutables de otros usuarios, indicados por t.
Puede chmod +t [文件名]agregar el bit adhesivo a los directorios usando

Con el sticky bit en su lugar, los archivos en este directorio solo pueden ser eliminados por el propietario del directorio, el propietario de los archivos en el directorio y la cuenta raíz :
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Resumir

Hasta ahora, se ha introducido el contenido sobre los permisos de archivos de Linux,
incluida la clasificación de visitantes de archivos, tipos de archivos y permisos de acceso, métodos de representación de valores de permisos de archivos, instrucciones para modificar permisos, permisos de directorio y bits adhesivos.

Si cree que no presenté una parte determinada claramente o que hay un problema con una parte determinada, puede plantearlo en el área de comentarios.

Si este artículo es útil para usted, espero que se conecte con un solo clic.

Espero progresar junto con usted.

Supongo que te gusta

Origin blog.csdn.net/weixin_73450183/article/details/131147693
Recomendado
Clasificación