【Linux】Problema de permisos

1. El concepto de permisos de Linux.

Hay dos tipos de usuarios en Linux : superusuario (root) y usuario normal.
Superusuario: puede hacer cualquier cosa en el sistema Linux
sin restricciones; Usuario normal: hace cosas limitadas en Linux .
El símbolo del sistema para superusuarios es "#" y el símbolo del sistema para usuarios normales es "$"

Comando: su [nombre de usuario]
Función: cambiar de usuario.
Por ejemplo, para cambiar del usuario root al usuario normal , utilice su usuario . Para cambiar de un usuario común a un usuario root , use su root (se puede omitir root) y el sistema le pedirá que ingrese la contraseña del usuario root , como se muestra en la siguiente figura:

Insertar descripción de la imagen aquí

2. Gestión de permisos de Linux

Cuando usamos el comando ll, normalmente vemos una cadena de datos delante del nombre del archivo o directorio, entonces, ¿qué significan? Por ejemplo, en el cuadro rojo a continuación:

Insertar descripción de la imagen aquí

En primer lugar, sabemos que las siguientes tres columnas son la hora, para ser precisos, la hora en que se modificó por última vez el archivo o directorio:

Insertar descripción de la imagen aquí

Luego están los números en la siguiente columna, que representan el tamaño del archivo o directorio:

Insertar descripción de la imagen aquí
A continuación, entenderemos qué representan las dos columnas de lmy .

1. Clasificación de los visitantes del archivo

En primer lugar, debemos comprender que los visitantes de archivos se dividen en tres categorías:

  1. Propietario de archivos y directorios de archivos: u—Usuario
  2. Usuarios del grupo al que pertenecen los propietarios del archivo y del directorio de archivos: g—Grupo
  3. Otros usuarios: o—Otros

En las dos columnas lmy en la figura siguiente , la primera columna lmy representa al usuario y la segunda columna representa al grupo , como se muestra a continuación:

Insertar descripción de la imagen aquí

Además de usuario y grupo , pertenece a otro grupo. Los usuarios que pertenecen al otro grupo no tienen permiso para acceder a este archivo o directorio.

2. Tipo de archivo y permisos de acceso (atributos de cosa)

El primer carácter es como se muestra a continuación:

Insertar descripción de la imagen aquí

¿Qué significa este carácter? El significado de este carácter es el siguiente:

Insertar descripción de la imagen aquí

El significado del tipo de archivo es el siguiente:

		d:文件夹
		-:普通文件
		l:软链接(类似Windows的快捷方式)
		b:块设备文件(例如硬盘、光驱等)
		p:管道文件
		c:字符设备文件(例如屏幕等串口设备)
		s:套接口文件

La representación básica de los permisos de visitantes es la siguiente:

  • Leer (r): Leer , para archivos, tiene permiso para leer el contenido del archivo; para directorios, tiene permiso para explorar la información del directorio.
  • Escribir (w): Escribir , para archivos, tiene permiso para modificar el contenido del archivo; para directorios, tiene permiso para eliminar archivos en el directorio movido.
  • Ejecutar (x): ejecutar , para archivos, tiene permiso para ejecutar el archivo; para directorios, tiene permiso para ingresar al directorio
  • -Indica que no tienes el permiso

Por ejemplo, en el directorio de prueba a continuación :

Insertar descripción de la imagen aquí

La d en el primer dígito significa que el tipo de archivo es un directorio; los 2 a 4 dígitos son los permisos propiedad del usuario , que son respectivamente ejecución de lectura y escritura; los 5 a 7 dígitos son los permisos propiedad del grupo , que también son ejecución de lectura y escritura; los últimos tres dígitos son Los permisos de otros solo tienen permisos de lectura y ejecución, pero no permisos de escritura.

3. Métodos de configuración relacionados para los permisos de acceso a archivos

Comando: chmod
Función: Establecer permisos de acceso a archivos
Formato: chmod [parámetro] permiso nombre de archivo

Nota: Sólo el propietario del archivo y el root pueden cambiar los permisos del archivo.

Modificar caracteres de permiso:
+: Agregar la autoridad indicada por el código de autoridad al alcance de la autoridad
-: Cancelar la autoridad indicada por el código de autoridad al alcance de la autoridad
=: Otorgar la autoridad indicada por el código de autoridad al alcance de la autoridad

Símbolos de usuario:
u: propietario
g: propietario en el mismo grupo
o: otros usuarios
a: todos los usuarios

Por ejemplo, si tocamos un archivo, sus permisos predeterminados son los siguientes:

Insertar descripción de la imagen aquí

Agregamos x permisos al usuario:

Insertar descripción de la imagen aquí

En este momento, el usuario de test.c tiene el permiso x; agregaremos el permiso rwx al otro usuario, como se muestra en la siguiente figura:

Insertar descripción de la imagen aquí

Finalmente, eliminamos todos los permisos del grupo, como se muestra en la siguiente figura:

Insertar descripción de la imagen aquí

La operación de modificar permisos es como se muestra arriba, de hecho, tenemos otra forma de modificar permisos, que es utilizar el método binario;

Por ejemplo, rwx es una letra de tres dígitos y podemos usar 0 o 1 para indicar la presencia o ausencia de sus permisos; por lo tanto, podemos considerar estos tres caracteres como un todo para formar un número octal para determinar si sus permisos de usuario son presente, como rx, que se puede utilizar El binario 101 se representa mediante el sistema octal 5 ; –x se puede representar mediante el sistema binario 001 y su sistema octal es 1 ; rwx se puede representar mediante el sistema binario 111 y su sistema octal es 7 .

Por lo tanto, al modificar permisos, también podemos usar tres números octales para modificarlos. Por ejemplo, queremos eliminar todos los demás permisos y agregar todos los permisos de usuarios y grupos , como se muestra a continuación:

Insertar descripción de la imagen aquí

Para otro ejemplo, eliminamos los permisos de todos los grupos, como se muestra en la figura:

Insertar descripción de la imagen aquí

Lo anterior es el contenido relevante de la modificación de permisos.

3. Permisos predeterminados

1. Permisos necesarios para operar archivos y directorios

Antes de conocer los permisos predeterminados, debemos comprender los permisos que necesitamos para operar en archivos o directorios.

Primero, primero comprendamos qué tipo de permisos se necesitan para ingresar a un directorio. Probémoslos uno por uno. Primero, reservemos el permiso de lectura(r) :

Insertar descripción de la imagen aquí

El permiso de lectura (r) no puede ingresar a un directorio, y luego solo conservamos los permisos de escritura (w) y ejecución (x) respectivamente:

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

Podemos observar que ingresar a un directorio solo requiere permisos de ejecución (x) .

Luego liberamos los permisos del directorio y creamos algunos archivos nuevos en él, de la siguiente manera:

Insertar descripción de la imagen aquí

Luego eliminamos la lectura (r) y la escritura (w) de dir . Ingresamos a este directorio y descubrimos que ya no es posible ver y crear archivos, como se muestra en la figura:

Insertar descripción de la imagen aquí

La razón es muy simple, porque el directorio dir solo tiene permisos de ejecución (x) , y el comando ll para ver los atributos del archivo requiere permisos de lectura (r) ; mientras que la creación de un nuevo archivo requiere permisos de escritura (w) , puede verificarlo usted mismo. .

Así que para resumir:

  1. Si un usuario específico puede ver la lista de archivos del directorio, se requiere permiso de lectura (r).
  2. Ya sea para permitir que un usuario específico cree archivos nuevos o elimine archivos en el directorio actual, se requiere permiso de escritura (w).
  3. Para ingresar a un directorio se requieren permisos de ejecución (x).
  4. Un archivo debe pertenecer a un directorio y la posibilidad de ver un archivo está determinada por los permisos del directorio.
  5. Un archivo debe pertenecer a un directorio. La posibilidad de eliminar un archivo no está determinada por el archivo en sí, sino por si el directorio al que pertenece y la cuenta correspondiente tienen permisos de escritura (w).

2. Permisos predeterminados para archivos y directorios

Necesitamos saber que el permiso predeterminado de un nuevo archivo es 666 ; el permiso predeterminado de un nuevo directorio es 777 ; pero, de hecho, cuando creamos un nuevo archivo y directorio, sus permisos predeterminados no son los que dijimos, como se muestra en la siguiente figura:

Insertar descripción de la imagen aquí

Como se muestra en la figura, podemos observar que el permiso predeterminado del directorio de prueba recién creado es 776 ; el permiso predeterminado del archivo test.c recién creado es 664 ; la razón es que al crear un archivo o directorio, también es afectado por la máscara de permiso umask . Función umask : Ver o modificar la máscara del archivo.

Podemos ver la máscara de permiso ingresando umask en la línea de comando, como se muestra a continuación:

Insertar descripción de la imagen aquí

Para modificar la máscara de permiso, simplemente siga la máscara de permiso después de umask :

Insertar descripción de la imagen aquí

Entonces, ¿por qué existe la máscara de permiso? ¿Qué es la máscara de permiso? ¿Para qué se usa esto? Analicémoslo a continuación.

Suponiendo que no estamos restringidos por la máscara de permiso, cambiamos la máscara de permiso a 000 y luego creamos un directorio, como se muestra en la figura:

Insertar descripción de la imagen aquí

Luego vamos a este directorio y creamos un archivo:

Insertar descripción de la imagen aquí

Ahora los permisos predeterminados de este archivo son 666 , porque nuestra máscara de permiso ha sido cambiada a 000 ; ahora en este archivo, el otro grupo tiene permisos de escritura (w) , lo que significa que todos pueden modificar este archivo. no es seguro; por lo tanto, debemos eliminar el permiso de escritura (w) del otro grupo en este archivo, como se muestra a continuación:

Insertar descripción de la imagen aquí

¿Este archivo ahora está seguro? ¡No! Aunque en este archivo, el otro grupo no tiene permiso para escribir (w) , pero como dijimos anteriormente, si un archivo se puede eliminar no está determinado por el archivo en sí, sino por si el directorio al que pertenece y el La cuenta correspondiente tiene el permiso para escribir (w). ) ¡ determinado por la autoridad! Necesitamos saber que este directorio libera todos los permisos al otro grupo, porque la máscara de permiso es 000 , lo que significa que todos pueden ingresar a este directorio y eliminar este archivo, lo que significa que si no me dejas verlo, lo destruirá. ¡Pierde! ¡Esto significa que todo este directorio no es seguro!

Entonces, miremos hacia atrás y veamos por qué hay una máscara de permiso. Ya deberíamos poder adivinarlo. Es para proteger la seguridad de directorios y archivos. Para ser más específicos, es para evitar que el otro grupo represente una amenaza para nuestros directorios y archivos.

Entonces, ¿cómo se logra el enmascaramiento de permisos? La razón es que todos los permisos que aparecen en la máscara de permisos eventualmente se eliminarán de los permisos iniciales. Por ejemplo, la siguiente imagen:

Insertar descripción de la imagen aquí

Por lo tanto, la máscara de permiso elimina el permiso de escritura (w) del otro grupo , protegiendo efectivamente la seguridad del directorio y los archivos en el directorio. La implementación específica en la imagen de arriba es: permiso final = permiso inicial & (~ umask) .

Esto explica por qué el permiso predeterminado real para crear un nuevo directorio es 775 ; por qué el permiso predeterminado real para crear un archivo nuevo es 664 .

3. Un poco pegajoso

En términos generales, es poco probable que ocurra la situación que mencionamos anteriormente, porque diferentes cuentas no estarán en el mismo directorio; pero si hay circunstancias especiales, nuestras múltiples cuentas quieren cooperar entre sí y compartir algunos datos, pero ¿no? ¿Quieres que otros modifiquen nuestros datos?

En este momento, necesitamos usar el bit adhesivo . El uso del bit adhesivo es que chmod +t 目录名el bit adhesivo solo se puede configurar para el directorio. El uso es el siguiente:

Insertar descripción de la imagen aquí

Cuando un directorio está configurado en el bit fijo , solo se puede acceder a los archivos de este directorio mediante

  1. Eliminar por superadministrador (root)
  2. Se elimina el propietario del directorio.
  3. El propietario del archivo lo elimina.

Supongo que te gusta

Origin blog.csdn.net/YoungMLet/article/details/132239178
Recomendado
Clasificación