Shell del sistema operativo (Linux), usuario, permisos


Hola a todos, mi nombre es Ji Ning.
Este artículo presentará el programa shell de Linux y el contenido de los usuarios de Linux que cambian los permisos de Linux.

Sistemas operativos y shells

Estrictamente hablando, Linux es un sistema operativo, al que llamamos "núcleo", pero los usuarios normales no podemos utilizar el núcleo directamente.
Pero a través del programa "shell" del kernel, que es el llamado shell.

Diagrama de estado del usuario y estado del kernel de Linux
Insertar descripción de la imagen aquí

El kernel del sistema operativo y el shell son dos componentes diferentes, pero están estrechamente relacionados.

El kernel del sistema operativo es la parte central del sistema operativo, administra los recursos de hardware y software de la computadora y proporciona servicios básicos del sistema informático, como administración de procesos, administración de memoria, administración de E / S, sistema de archivos, etc. El núcleo del sistema operativo es la piedra angular del sistema operativo y sin él, el sistema operativo no puede ejecutarse correctamente.

Los usuarios utilizan el shell shell para interactuar con el núcleo del sistema operativo主要接口. Shell puede entenderse como 命令解释器, que acepta comandos ingresados ​​por el usuario y llama al servicio del kernel correspondiente para su ejecución. Shell proporciona un conjunto de comandos y lenguajes de secuencias de comandos que permiten a los usuarios acceder fácilmente a los servicios del kernel del sistema operativo y operar sistemas de archivos y otros recursos.

En el sistema operativo, Shell sirve como una interfaz interactiva entre los usuarios del sistema y el kernel, pasando las solicitudes e instrucciones de los usuarios a través de la línea de comando o la interfaz gráfica. Después de recibir las instrucciones, el kernel realiza las operaciones correspondientes y devuelve los resultados al Shell. La interacción entre el shell y el kernel se puede lograr mediante llamadas al sistema.

Entonces, para resumir el papel del shell shell:Traduzca los comandos del usuario al kernel para su procesamiento y, al mismo tiempo, traduzca los resultados del procesamiento del kernel al usuario.

shell外壳一定会对用户输入的指令做处理吗?

La respuesta es no. Para considerar la seguridad y facilidad de uso del sistema operativo, los usuarios deben ingresar instrucciones a través del programa shell en lugar de acceder directamente al sistema operativo. Pero cuando el programa shell está procesando instrucciones, para instrucciones riesgosas, el programa shell creará un 子进程 para permitir que el proceso hijo ejecute las instrucciones riesgosas (normalmente 用户自定义的指令).
La creación de un subproceso puede aislar el proceso de ejecución de instrucciones en un espacio de proceso independiente. De esta manera, incluso si ocurre un error o accidente en la ejecución, no afectará el shell en sí ni a otros. procesos; en segundo lugar, el shell puede Al controlar el estado del proceso y el uso de recursos del proceso hijo, el alcance de la influencia de las instrucciones es limitado, se reducen los riesgos y se garantiza en gran medida la seguridad y estabilidad del sistema.

Instrucciones para matar un proceso:

kill -9 进程编号

Usuarios de Linux

Los usuarios del sistema Linux se dividen en root usuarios y 非root usuarios. El usuario root es el superadministrador y tiene la máxima autoridad del sistema; mientras Los usuarios comunes pueden Para hacer la mayoría de las cosas que podemos hacer en nuestro propio sistema, lo que podemos hacer usando el sistema Windows básicamente lo pueden hacer usuarios comunes. Sin embargo, solo el usuario root puede hacer cosas como instalar y eliminar software del sistema, modificar configuraciones del sistema, etc.

Creación y eliminación de usuarios comunes.

En un sistema Linux, solo puede haber un usuario root, pero puede haber varios usuarios comunes y los recursos entre usuarios comunes no se comparten.

创建新用户xxx es el nombre de usuario que se creará

adduser xxx

为用户设置密码xxxxx es la contraseña (el terminal no muestra la contraseña ingresada, pero la confirmará dos veces)

passwd xxxxx

删除用户名和密码

userdel xxx

删除用户数据

userdel rm -r xxx

Cambio de usuario

切换为root用户

su - #以root身份再登录一次
su #切换为root身份

Los dos métodos de cambio anteriores requieren que ingrese nuevamente la contraseña de la cuenta raíz.

logout # 退回到普通用户的账号

切换为普通用户

su xxx

No necesita ingresar una contraseña para cambiar la cuenta raíz, pero sí debe ingresar la contraseña para cambiar la cuenta a una cuenta normal.

exit

Salir de la cuenta ordinaria cambiada

Cómo ejecutar un comando con los permisos de la cuenta raíz sin cambiar a la cuenta raíz

sudo 指令

Sin embargo, para usar el comando sudo, debe agregar al usuario normal como root a la lista blanca antes de poder usar sudo.

sudo指令白名单教程
Primero, cambie el usuario a la cuenta raíz y ejecute el siguiente comando en la cuenta raíz

vim /etc/sudoers

Ingrese vim y busque %whell ALL=(ALL) ALL este comando
Insertar descripción de la imagen aquí

Copie este comando y cambie la rueda por el nombre de usuario que desea agregar a la lista blanca.

Insertar descripción de la imagen aquí

Después de ingresar al modo de fila inferior, presione w! para forzar el guardado y q! para forzar la salida. En el futuro, cuando la cuenta Zyb use el comando sudo, solo necesitará ingresar la contraseña de la cuenta Zyb una vez en un corto período de tiempo.

permisos de linux

Clasificación de permisos de Linux

Atributo condicional central:r(读)w(transcripción) x(执行)

Grupo de colores de ángulo de límite de texto de Linux: 拥有者, 所属组, other

文件所有者: el propietario del archivo es el usuario especificado cuando se creó el archivo, normalmente el usuario que creó el archivo. El propietario del archivo tiene propiedad y acceso total al archivo, incluidas las operaciones de lectura, escritura y eliminación.
文件所属组: el grupo al que pertenece el archivo especifica el grupo al que pertenece el archivo. Al crear un archivo, el grupo al que pertenece el archivo generalmente se establece en el grupo principal al que pertenece el usuario creador ("crear un grupo"). Los usuarios del grupo al que pertenece el archivo pueden acceder al archivo, pero no tienen propiedad.
文件的other: Representa a todos los demás usuarios o grupos, es decir, usuarios o grupos que no son el propietario o grupo del archivo.

¿Cómo modificar permisos?

Modificar el propietario y el grupo de un archivo requiere permisos de root o el usuario actual es el propietario original del archivo. Puede utilizar el comando chown, nuevo usuario y nuevo grupo son el nuevo propietario y el nuevo grupo del archivo.

Cambiar el propietario de un archivo
chown newuser file.txt

Modificar el grupo al que pertenece un archivo
chgrp newgroup file.txt

Modificar el propietario y grupo del archivo al mismo tiempo
chown newuser:newgroup file.txt

Permisos de acceso a archivos

Ingrese ll en la línea de comando para ver los detalles del archivo.
Insertar descripción de la imagen aquí
Lo que hay en el cuadro rojo es la información detallada de permisos de la función del archivo.
Insertar descripción de la imagen aquí

Modificar permisos de archivos

chomd ugoa +/- rwx 文件名

explicar:u representa el propietario del archivo, usuario, g representa el grupo al que pertenece el archivo, o representa el otro del archivo y a representa el propietario del archivo; + representa agregar un determinado permiso, - representa eliminar un determinado permiso ; r w x representa los atributos de permiso del archivo: leer, escribir, ejecutar, admite el funcionamiento continuo.

Ejemplo 1: Si quiero quitar el permiso de lectura del propietario del archivo test.txt

chomd u-r test.txt

Ejemplo 2: Si quiero quitar el permiso de lectura del propietario del archivo test.c, aumentar el permiso de escritura del grupo al que pertenece y el permiso de lectura de otro, las instrucciones son las siguientes:

chomd u-r,g+w,o+r test.c

Nota: Debe ser el propietario del archivo o directorio o el superusuario (root) para tener permisos de modificación. Para modificar los atributos del archivo, el propietario también debe tener permisos de escritura en los archivos modificados. No importa cuáles sean los permisos, ¡son inútiles en la cuenta raíz!

máscara de permiso

La máscara de archivo puede personalizar los permisos predeterminados cuando se crea un archivo.
En teoría, un archivo de directorio tiene derechos de lectura, escritura y ejecución cuando se crea (se requieren x permisos para ingresar a un archivo), pero a veces no todos los tienen. De la misma manera, un archivo de directorio ordinario El archivo es Cuando se crea, debe tener al menos derechos de lectura y escritura.
El permiso se contará como 1 y la ausencia del permiso se contará como 0
Insertar descripción de la imagen aquí
Los permisos del archivo en la imagen de arriba son: 110110100 A nivel principal es comparar el número binario de permisos totales con la máscara de permisos, si hay los mismos bits se eliminarán, y si no los hay, no se eliminarán. estar procesado. También puedes utilizar la siguiente fórmula para calcular: ¿Cómo se calcula esto? Cambiar la máscara de archivo de esta cuenta a 005, crea los archivos test.cc, code.cc y el directorio efootball, puedes ver que los permisos son reducidos respecto a los archivos creados anteriormente. Por ejemplo: Puedes modificar la máscara de archivo de la cuenta actual El comando puede consultar la máscara de archivo de la cuenta actual y la máscara de archivo actual El código es 002 Luego los permisos iniciales del directorio deben ser 777. El permiso real de los archivos normales es 777. ¿Pero por qué no? Esto tiene que ver con las máscaras de permiso. Especifica que los permisos predeterminados de un archivo son los permisos iniciales del archivo: los permisos que aparecen en umask (resta octal) Permisos El orden de izquierda a derecha es lectura, escritura y ejecución. Piense en los tres permisos de cada función del archivo como un número octal, de la siguiente manera 110110100 111111101 110110100
111111101





Insertar descripción de la imagen aquí

umask
Insertar descripción de la imagen aquí
umask 权限编号
umask 003
Insertar descripción de la imagen aquí

最终权限 = 起始权限&(~umask)

Nota: ¡La posibilidad de eliminar un archivo no depende del archivo en sí! Y dependiendo del directorio donde se encuentre el archivo, si el propietario tienepermisos. Por supuesto, la cuenta raíz puede hacer lo que quiera.

poco pegajoso

En el directorio de archivos compartido, sin configurar el grupo al que pertenece, podemos agregar uno粘滞位t a otro en este directorio para reemplazar el último permiso x de otro, y el punto es específico x El significado de esto también impone restricciones especiales a los permisos de este directorio: el directorio tiene el atributo w para otros, pero solo el root o el propietario del archivo tiene derecho a eliminar los archivos en este directorio, y no ¡uno más está permitido!

El bit adhesivo se puede utilizar para agregar permisos especiales a los directorios.

Supongo que te gusta

Origin blog.csdn.net/zyb___/article/details/134111562
Recomendado
Clasificación