Compartir tecnología

Análisis en profundidad de los permisos de Linux: principios de exploración

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Prefacio: esta sección habla principalmente sobre el contenido relacionado con los permisos de Linux. Los permisos de Linux no se pueden sentir si usa la cuenta raíz, por lo que necesitamos usar cuentas comunes para conocer el contenido relevante de esta sección y realizar algunas pruebas experimentales. Luego, a través del estudio de los permisos de Linux, podemos saber por qué a veces siempre se nos niega el permiso cuando operamos un archivo, y podemos saber la diferencia entre los permisos de los archivos en el directorio raíz y los permisos de los archivos en el directorio de inicio de nuestro usuario normal.

PD: esta sección es adecuada para amigos que están aprendiendo Linux y conocen algunos comandos de Linux.

Clasificación de usuarios

//Primero, conozcamos la clasificación de usuarios en Linux:

  • raíz:superusuario, administrador
  • usuario general: Es decir, algunos usuarios que creamos. (Usuarios comunes de addusr)

La diferencia fundamental entre estos dos usuarios es que el usuario raíz no está restringido por permisos, mientras que los usuarios normales sí están restringidos por permisos.

//su

Los usuarios normales pueden cambiar a usuarios root, y los usuarios root también pueden cambiar a usuarios normales.

Cambiar de usuario normal a usuario root:

El primero: su + contraseña de root. Puede cambiar para convertirse en usuario root. Si cambia en este momento, la posición del usuario permanecerá sin cambios después del cambio.

El segundo tipo: su- + contraseña de root. También cambie al usuario root. Si cambia en este momento, la ubicación del usuario después del cambio se convertirá en el directorio de inicio del root.

Después de cambiar en las dos situaciones anteriores, puede usar cral + d para volver a cambiar.

Cambiar el usuario raíz a un usuario normal: cambiar el usuario raíz a un usuario normal no requiere una contraseña y se puede cambiar directamente.

El usuario normal cambia a usuario normal

Generalmente, hay dos formas para que los usuarios normales cambien y se conviertan en usuarios normales:

El primero: si tiene la contraseña del usuario normal, puede usar su + usuario + contraseña del usuario para cambiar de identidad.

El segundo tipo: primero cambie al usuario raíz (consulte el método de cambio anterior) y luego cambie directamente al usuario especificado a través de la identidad raíz.

Tenga en cuenta que puede usar cral + d para volver al cambio de identidad de conciencia.

Escalada de privilegios de comando : Cuando ejecutamos el comando, no podemos cambiar al usuario root, solo escalar los privilegios de uno de los comandos. En este momento, usamos sudu + comando + la contraseña del usuario actual. Los amigos pueden tener preguntas aquí: ¿por qué necesitan ingresar su propia contraseña para escalar los privilegios de un determinado comando, en lugar de la contraseña de root? Esto se debe a que esta escalada de privilegios de comando es condicional, es decir, solo cuando se agrega un usuario a la lista blanca del sistema se puede llevar a cabo la escalada de privilegios de comando. Si no se agrega a la lista blanca, el comando de escalada de privilegios es inútil.

¿Qué es el permiso?

En lengua vernácula, los permisos se refieren a si se le permite hacer algo.

La identidad de un usuario se divide en: propietario, grupo y otros.

Veamos la siguiente serie de líneas de comando:

Aquí, el primer _mian_yang representa inicialmente al propietario del archivo y el segundo _mian_yang representa el grupo al que pertenece el archivo. Es decir, el propietario de estos archivos es _mian_yang, y _mian_yang es la identidad del propietario del grupo al que pertenecen estos archivos es _mian_yang. Si un usuario pertenece al grupo _mian_yang, entonces es la identidad del grupo al que pertenece. a cuál pertenece; y si un usuario es ambos No es _mian_yang, ni está en el grupo al que pertenece _mian_yang. Entonces este usuario es la identidad de otra persona.

Entonces, si hay un director llamado Zhang San, Zhang San quiere ir a la oficina de su propio director. Entonces me gustaría preguntar si Zhang San puede ir a la oficina del director porque es Zhang San o porque es el director. La razón obvia aquí es que, como él es el director, puede ir a la oficina de su propio director. Entonces, para nuestros archivos, ¿podemos acceder a este archivo porque somos este usuario? ¿O es por nuestra identidad de usuario? La respuesta es la identidad. Es decir, la autenticación de autoridad es la identidad.

Segunda pregunta, todos sabemos que los teléfonos móviles tienen muchas funciones: podemos ver vídeos, consultar información, jugar, etc. Estos pueden verse como atributos que poseen los teléfonos móviles. Sin embargo, cuando tenemos hambre, no podemos comernos nuestros teléfonos para dejar de tener hambre. Poder ser utilizado como alimento es un atributo que los teléfonos móviles no tienen. Entonces, no importa lo que hagamos, ni siquiera las personas con la máxima autoridad pueden permitir que los teléfonos móviles se conviertan en comida. Podemos conocer el segundo punto, es decir, los permisos también están relacionados con los atributos de las cosas.

//La relación entre identidad y usuario.

Después de hablar de los tres tipos de permisos, consideremos la relación entre los permisos y las clasificaciones de usuarios según la clasificación de usuarios anterior.

En primer lugar, para un usuario normal, este usuario normal puede ser el propietario de un archivo, el grupo al que pertenece el archivo u otras personas.

Para el usuario root, el usuario root puede ser el propietario de un archivo, el grupo al que pertenece un archivo u otras personas.

Entonces, ¿cómo se manifiesta? Es decir, ¿cómo determina Linux la identidad de este usuario? Veamos esta imagen:

Para los cuadros verde y naranja, el cuadro verde es el propietario y el cuadro naranja es el grupo al que pertenece. Entonces, cuando cualquier usuario que haya iniciado sesión accede a un archivo, primero debe verificar si es el propietario del archivo. De lo contrario, debe verificar si es el grupo al que pertenece el archivo. Si no, entonces alguien más.

//permisos de archivos

Continúe mirando esta imagen. Para esta imagen, los cuadros rosas en el interior son los permisos de cada identidad. Las barras horizontales verdes son permisos del propietario, las barras horizontales naranjas son permisos de grupo y las barras horizontales azules son permisos de otras personas. Entre ellos, cada identidad tiene tres permisos rwx. Estos tres permisos son un grupo y se determinan las posiciones de estos tres permisos. La primera posición es para lectura, la segunda posición es para escritura y la tercera posición es para ejecutable. ¡Estas tres posiciones no estarán desordenadas y el significado de cada posición está determinado! Y cada ubicación solo tiene si o no, tiene los permisos especificados.

Piénselo aquí, ¿por qué necesita permiso para pertenecer a un grupo?

Supongamos que tanto Zhang San como Li Si ingresaron a una empresa para realizar entrevistas y finalmente se convirtieron en pasantes de la misma empresa y luego fueron asignados al Grupo A y al Grupo B respectivamente. Además, Zhang San está en el Grupo A y Li Si está en el Grupo B. Ahora la empresa permite que estos dos grupos desarrollen un software al mismo tiempo. Un día, Zhang San escribió un montón de códigos muy poderosos. Li Si quería echarle un vistazo, pero Zhang San no quería que Li Si lo viera. Sin embargo, un día el líder quiere echar un vistazo al código escrito por Zhang San. Sin embargo, si Zhang San libera el permiso de lectura del código, entonces Li Si puede verlo, por lo que el grupo al que pertenece juega un papel en esto. tiempo. Que este líder pertenezca a este grupo, para que yo pueda ver este programa, y ​​el líder también, pero los demás no.

Modificación de permisos

Sólo hay dos personas que pueden modificar los permisos, uno es el propietario y el otro es root.

Método: chmod u + rwx modifica los permisos cambiados por el propietario y agrega permisos al propietario (r permiso de lectura, w permiso de escritura, x permiso de ejecución)

chmod u-rwx modifica los permisos del propietario y resta los permisos correspondientes del propietario

chmod g+rwx modifica los permisos del grupo al que pertenece y agrega permisos al grupo al que pertenece.

chmod g-rwx modifica los permisos del grupo al que pertenece y agrega permisos al grupo al que pertenece.

chmod g-rwx para modificar los permisos de otras personas y agregar permisos a otros

chmod g-rwx para modificar los permisos de otras personas y agregar permisos a otros

También puedes usar chmod u+rwx y g+rwx para otorgar permisos a múltiples identidades. Esto significa agregar permisos al grupo y propietario al que pertenecen, y restar permisos es lo contrario.

Por ejemplo, si desea agregar permisos a todas las identidades a la vez, usaría chmod a+rwx, y ocurre lo contrario para restar permisos.

Además, además de cambiar los permisos, también podemos cambiar el propietario y grupo de un archivo.

Cambiar el propietario del archivo: elija el archivo del usuario para entregar sus propios archivos a alguien y cambiar el propietario.

Cambiar el grupo al que pertenece un archivo: chgrp Cambia el grupo al que pertenece un archivo de usuario.

Las dos instrucciones anteriores requieren el consentimiento del usuario correspondiente. Generalmente existen dos métodos: uno es escalar derechos, su, y el otro es comunicarse fuera de línea.

En cuanto a los permisos, los permisos de cada ubicación que vemos usando ll están determinados, por lo que podemos usar 1 para representar que la ubicación tiene permisos y 0 para representar que la ubicación no tiene permisos. Entonces podemos usar 111 y 110 para representar los permisos de una identidad. Por ejemplo, 111 significa leer, escribir y ejecutar. 111 es 7, por lo que se pueden representar tres identidades mediante tres dígitos octales, como 777.

Por lo tanto, podemos modificar los permisos de esta manera: chmod 777, lo que significa otorgar todos los permisos a todas las identidades.

Ahora, veamos un ejemplo:

Ahora, para el usuario _mian_yang, su estado de propietario tiene permisos de lectura pero no permisos de escritura; su identidad de grupo tiene permisos de lectura y permisos de escritura;

Entonces, en este momento, ¿_mian_yang puede escribir en este archivo?

La respuesta es no, porque cuando un usuario autentica su identidad, solo puede autenticar una identidad. Primero autentica al propietario, luego autentica el grupo al que pertenece y finalmente autentica a los demás.

máscara de usuario

¿Por qué los permisos se ven así cuando creamos un archivo?

En primer lugar, lo que necesitamos saber es que los permisos en la imagen son los permisos finales creados por el archivo. En realidad, también tienen un permiso inicial: el permiso inicial predeterminado para los archivos de directorio es 777 y el predeterminado para los archivos normales. 666. Pero, ¿por qué los permisos finalmente creados son 775 para archivos de directorio y 664 para archivos normales?

Esto se debe a que hay una umask en el sistema de forma predeterminada: la máscara de permiso. La máscara de permiso significa que cualquier permiso que aparezca en la máscara de usuario no aparecerá en el permiso final. La regla de cálculo aquí no es el permiso predeterminado - máscara de permiso, sino el permiso final = permiso predeterminado & (~ máscara de permiso).

Al mismo tiempo, también se puede modificar la máscara de uma, como el número de máscara de uma, que consiste en modificar la máscara de permiso a un número determinado.

El significado de la lectura y escritura de directorios.

Lectura de directorio: nos permite ver el contenido de los archivos del directorio actual

Escritura de directorios: nos permite crear, eliminar y cambiar archivos

Directorio ejecutable: si podemos ingresar al directorio.

poco pegajoso

En la práctica, podemos tener este requisito: queremos compartir datos, pero si creamos el directorio bajo nuestro directorio de inicio, otros usuarios no pueden ingresar. Por lo tanto, este directorio solo se puede crear en el directorio raíz, pero los permisos predeterminados del directorio raíz son dr-xr-xr-x, lo que significa que las tres identidades solo pueden leer y ejecutar, y no pueden crear directorios a voluntad. Por lo tanto, debe utilizar la cuenta raíz para crear el directorio.

Después de crear este archivo, podemos configurar la otra identidad para leer, escribir y ejecutar este archivo; de lo contrario, no se podrá compartir. Pero si un usuario crea un archivo en él, debido a que el directorio tiene permiso de escritura, otros pueden eliminar el archivo a voluntad. Entonces, para proteger este archivo en este momento, se agregó la operación de bit adhesivo. El funcionamiento de este bit adhesivo garantiza que los archivos creados por el usuario solo puedan ser eliminados por el propio usuario o el root.

Por lo tanto, el bit adhesivo es un conjunto de permisos específico para un directorio, generalmente un directorio compartido. Todos pueden agregar, eliminar, verificar y modificar el archivo en el directorio, pero solo el propietario y el root pueden eliminar el archivo, y nadie más. poder.

------------------

Eso es todo por esta sección.

Aquí están mis notas: