Superusuario en Linux

1. El concepto y la importancia de los superusuarios

En todos los sistemas Linux, el sistema utiliza UID para distinguir los niveles de permisos de los usuarios, y el sistema acepta a los usuarios con UID 0. tiene súper permisos. El superusuario tiene la máxima autoridad para operar dentro del alcance del acuerdo del sistema, por lo que puede completar todo el trabajo de administración del sistema. Podemos usar /etc/passwd para verificar que el usuario con UID 0 es root, y solo el UID correspondiente a root es 0. Desde este punto de vista, el usuario root tiene supremacía insustituible y permisos ilimitados en el sistema. El usuario root es el superusuario del sistema.

En el sistema, cada archivo, directorio y proceso pertenece a un determinado usuario. Sin el permiso del usuario, otros usuarios normales no pueden operarlo, excepto el root. Los privilegios del usuario root también se reflejan en el hecho de que root puede trascender a cualquier usuario y grupo de usuarios para leer, modificar o eliminar archivos o directorios (dentro del rango de permisos normales del sistema); ejecutar y finalizar programas ejecutables y dispositivos de hardware; Agregar, crear y eliminar, etc.; también puede modificar los propietarios y permisos de archivos y directorios para satisfacer las necesidades de administración del sistema (porque root es el usuario con más privilegios del sistema).

Lo opuesto a los superusuarios son los usuarios comunes y los usuarios virtuales (también conocidos como usuarios disfrazados). Los usuarios comunes y disfrazados son usuarios restringidos, pero para completar tareas específicas, también se requieren usuarios comunes y usuarios disfrazados. de. Linux es un sistema operativo multiusuario y multitarea. El multiusuario se refleja principalmente en la diversidad de roles de usuario, y a diferentes usuarios se les asignan diferentes permisos. Esta es la esencia de por qué los sistemas Linux son más seguros que los sistemas Windows.

Debido al papel indispensable e importante de los superpermisos en la administración del sistema, para completar las tareas de administración del sistema, debemos usar superpermisos en general, por el bien de la seguridad del sistema, para aplicaciones de nivel general; , No es necesario que el usuario raíz complete la operación. El usuario raíz solo se utiliza para administrar y mantener el sistema, como ver y limpiar registros del sistema, y ​​agregar y eliminar usuarios.

En un entorno que no implica administración del sistema, los usuarios comunes pueden completarlo, como escribir un archivo, escuchar música, usar Gimp para procesar una imagen, etc. Basado en aplicaciones comunes. los usuarios pueden completar la llamada.

Cuando iniciamos sesión en el sistema como un usuario con permisos normales, algunas configuraciones y administración del sistema deben ser completadas por un usuario con súper privilegios, como administrar los registros del sistema, agregar y eliminar usuarios. ¿Cómo no podemos iniciar sesión directamente como root, sino pasar de un usuario normal a un usuario root para realizar el trabajo necesario para la administración del sistema operativo? Esto implica la cuestión de la administración de superprivilegios.

El proceso de obtención de superpermisos es el proceso de cambiar la identidad de usuario normal a la identidad de superusuario; este proceso se resuelve principalmente mediante su y sudo.

2. El papel del superusuario en la gestión del sistema

(1) Operar cualquier archivo, directorio o proceso

Pero esta operación está en el sistema Operaciones dentro el rango de permisos más alto, algunas operaciones no pueden ser completadas ni siquiera por root con superprivilegios. Por ejemplo, el directorio /proc se utiliza para reflejar la información de estado en tiempo real de la operación del sistema, por lo que ni siquiera el root puede escribir en él.

(2) Para la gestión del sistema que involucra el sistema general

Gestión de hardware, gestión del sistema de archivos, gestión de usuarios y configuración global del sistema relacionada, etc... Si se ejecuta Cuando se ejecuta un determinado comando o La herramienta indica que no hay permiso, la mayoría de ellos requieren superpermisos para completarse. Por ejemplo, usar adduser para agregar un usuario, esto solo lo puede hacer un usuario con superpermisos.

3. Autorización de superusuario

(1) comando su

El comando su es una herramienta para cambiar de usuario.

Por ejemplo, iniciamos sesión como el usuario normal beinan, pero si queremos agregar una tarea de usuario y ejecutar useradd, el usuario beinan no tiene este permiso y este permiso es propiedad de root. Hay dos soluciones. Una es salir del usuario beinan e iniciar sesión nuevamente como usuario root. Sin embargo, este método no es el mejor. La segunda es que no necesitamos salir del usuario beinan. a root para agregar usuarios. Trabaje y espere hasta que se complete la tarea antes de salir de root. Podemos ver que cambiar a través de su es una mejor manera. Puede cambiar entre usuarios a través de su. Si el usuario superprivilegiado root cambia a un usuario normal o virtual, no se requiere contraseña, mientras que un usuario normal necesita verificación de contraseña para cambiar a cualquier otro usuario.

Si su no agrega ningún parámetro, el valor predeterminado es cambiar al usuario raíz, pero no al directorio de inicio del usuario raíz, es decir, aunque el usuario raíz se cambia al usuario raíz en. esta vez, el entorno de inicio de sesión raíz no se modifica; el entorno de inicio de sesión predeterminado del usuario se puede encontrar en /etc/passwd, incluido el directorio de inicio, la definición de SHELL, etc.

(2) comando sudo

su brinda comodidad a la administración Al cambiar a root, se pueden completar todas las herramientas de administración del sistema. Simplemente proporcione la contraseña de root a cualquier usuario común. Puede cambiar a root para completar todo el trabajo de administración del sistema, pero después de cambiar a root a través de su, también hay factores inseguros, por ejemplo, el sistema tiene 10 usuarios y todos están involucrados en la administración; Si estos 10 usuarios están involucrados en el uso de superprivilegios, como administrador, si desea que otros usuarios cambien a root con superprivilegios a través de su, debe decirles a estos 10 usuarios la contraseña del privilegio de root, si todos estos 10 usuarios son root; permisos, puede hacer cualquier cosa con permisos de root. Esto representa una amenaza para la seguridad del sistema hasta cierto punto. No podemos garantizar en absoluto que estos 10 usuarios puedan administrar el sistema de acuerdo con los procedimientos operativos normales. La influencia en el sistema es que los errores importantes en la operación pueden provocar fallas del sistema o pérdida de datos, por lo que la herramienta su no es la mejor opción en la administración de sistemas que involucran a varias personas. su solo es adecuado para sistemas donde una o dos personas participan en la administración. En general, su no puede hacer Para un uso limitado por parte de usuarios comunes, es mejor centrarse en la experiencia técnica y el alcance de gestión de cada administrador, delegar autoridad de manera específica y acordar qué herramientas utilizarán para completar su trabajo relacionado. Lo haremos Es necesario usar sudo.

A través de sudo, podemos delegar ciertos superpermisos de manera específica y los usuarios comunes no necesitan conocer la contraseña de root. Por lo tanto, sudo es relativamente seguro en comparación con su, que tiene permisos ilimitados. sudo también se puede llamar su restringido. Además, sudo requiere autorización, por lo que también se le llama su autorizado.

El proceso de ejecución del comando sudo consiste en cambiar el usuario actual a root (u otro usuario especificado al que cambiar) y luego ejecutar el comando como root (u otro usuario especificado al que cambiar). Una vez completada la ejecución, regrese directamente al usuario actual, lo que requiere autorización a través del archivo de configuración sudo /etc/sudoers.

(3) Escriba el archivo /etc/sudoers

El archivo de configuración de sudo es /etc/sudoers. Podemos usar su herramienta de edición especial visodu. que agrega Cuando las reglas no son muy precisas, se nos indicará un mensaje de error al guardar y salir. Después de la configuración, puede cambiar a un usuario autorizado y usar sudo -l para verificar qué comandos se pueden ejecutar o prohibir.

Cada línea en el archivo /etc/sudoers cuenta como una regla. El signo # delante de ella puede considerarse como el contenido de la explicación y no se ejecutará si la regla es muy larga. no cabe en una fila, puedes usar el signo \. Continuamos con las filas, por lo que parece que una regla puede tener varias filas.

Las reglas de /etc/sudoers se pueden dividir en dos categorías: una son definiciones de alias y la otra son reglas de autorización; las definiciones de alias no son necesarias, pero las reglas de autorización sí.

Para un uso específico, consulte man sudoers.