MTE explica: las diferencias entre Su, Sudo Su, Sudo -s y Sudo -i

En la línea de comandos de Linux hay muchas formas diferentes de obtener una sesión de root en la terminal. Esto puede crear cierta confusión, ya que la mayoría de los usuarios principiantes que buscan obtener la raíz pueden no estar familiarizados con la forma en que cada comando puede obtener acceso a la raíz, en qué se diferencian y cuándo importan estas diferencias.

Es por esto que vamos a desarmar cada uno de los muchos comandos diferentes que se usan para obtener acceso de root en un terminal. Explicaremos exactamente cómo obtienen root, cuándo usarlos y todo lo demás.

su

root-su

los su comando sustituye al usuario actual en uso por el sistema en el shell. Puede cambiar a cualquier usuario tomando su y agregando un nombre de usuario. Esto le indicará al sistema que cambie (y básicamente cierre la sesión) del usuario actual al especificado. Alternativamente, el su El comando puede obtener acceso de root ingresando su sin especificar nada después del comando.

“Su” se usa mejor cuando un usuario desea acceso directo a la cuenta raíz en el sistema. No pasa sudo o algo por el estilo. En cambio, la contraseña del usuario root debe ser conocida y utilizada para iniciar sesión. Además, otras formas de obtener la raíz no tienen el beneficio de obtener acceso al directorio raíz de inicio y al entorno raíz.

sudo su

root-sudo-su

Este comando es esencialmente lo mismo que ejecutar su en la cáscara. En lugar de decirle al sistema que «cambie de usuario» directamente, le está diciendo que ejecute el comando «su» como root. Cuando sudo su se ejecuta, «.profile», «.bashrc» y «/ etc / profile» se iniciarán, al igual que ejecutar su (o su root). Esto se debe a que si se ejecuta algún comando con sudo frente a él, es un comando al que se le otorgan privilegios de root.

Aunque no hay mucha diferencia con «su», sudo su sigue siendo un comando muy útil por una razón importante: cuando un usuario está ejecutando «su» para obtener acceso de root en un sistema, debe conocer la contraseña de root. La forma en que se da root con sudo su es solicitando la contraseña del usuario actual. Esto hace posible obtener root sin la contraseña de root, lo que aumenta la seguridad.

sudo -i

root-sudo-i

Utilizando sudo -i es prácticamente el mismo que el sudo su mando. Los usuarios pueden obtener root mediante «sudo» y no cambiando al usuario root. Muy parecido sudo su, los -i flag permite a un usuario obtener un entorno de root sin tener que conocer la contraseña de la cuenta de root. sudo -i también es muy similar a usar sudo su en eso leerá todos los archivos ambientales (.profile, etc.) y establecerá el entorno dentro del shell con él.

Donde se diferencia de «sudo su» es que sudo -i es una forma mucho más limpia de obtener root y un entorno root sin interactuar directamente con el usuario root. ¿Cómo? Con sudo su estás usando más de una raíz setuid comandos. Este hecho hace que sea mucho más desafiante averiguar qué variables ambientales se mantendrán y cuáles se cambiarán (cuando se inunde en el entorno raíz). Esto no es cierto con sudo -i, y es por esto que la mayoría de la gente lo ve como el método preferido para obtener root sin iniciar sesión directamente.

sudo -s

root-sudo-s

los -s El interruptor para el comando «sudo» lee la variable $ SHELL del usuario actual que ejecuta los comandos. Este comando funciona como si el usuario estuviera ejecutando sudo /bin/bash. Sudo -s es un shell de estilo «sin inicio de sesión». Esto significa que, a diferencia de un comando como sudo -i o sudo su, el sistema no leerá ningún archivo ambiental. Esto significa que cuando un usuario le dice al shell que ejecute sudo -s, obtiene root pero no cambiará al usuario ni al entorno del usuario. Tu hogar no será el hogar raíz, etc.

Este comando se usa mejor cuando el usuario no quiere tocar root en absoluto y solo quiere un shell de root para facilitar la ejecución del comando. Otros comandos mencionados anteriormente obtienen acceso a la raíz, pero tocan los archivos ambientales de raíz y permiten a los usuarios un acceso más completo a la raíz (lo que puede ser un problema de seguridad).

Conclusión: ¿Qué comando debo usar?

Cada comando tiene su caso de uso. Lo importante aquí es comprender qué hace cada comando y cuándo usarlos. Tal y como está, sudo -i es la forma más práctica y limpia de obtener un entorno raíz. Por otro lado, aquellos que usan sudo -s descubrirán que pueden obtener un shell de root sin la capacidad de tocar el entorno de root, algo que tiene beneficios de seguridad añadidos.

Realmente no hay un comando en esta lista que sea 100% el mejor. A medida que los usuarios se sientan más cómodos con la línea de comandos, deberán tener en cuenta todas las formas de obtener root (y hay muchas) y sopesar los pros y los contras y actuar en consecuencia. Espero que con la ayuda de este artículo estas decisiones sean más fáciles de tomar.

¿De qué manera prefiere obtener acceso de root en Linux? ¡Cuéntanos a continuación!

Credito de imagen: blog.david-jensen.com