0
(0)

Hay muchas formas diferentes de obtener una sesión raíz en la terminal de Linux. Esto puede crear cierta confusión, ya que la mayoría de los usuarios principiantes que buscan obtener privilegios de root pueden no estar familiarizados con cómo cada comando puede obtener acceso de root, cómo son diferentes y cuándo importan estas diferencias. Aquí desglosamos cada uno de los muchos comandos diferentes que se utilizan para obtener acceso a la raíz en una terminal, explicamos cómo obtienen la raíz, cuándo usarlos y todo lo demás.

su

Él su El comando sustituye al usuario actual por root en el shell actual.

Linuxsudo Suprompt

Puede cambiar a cualquier usuario escribiendo su y agregando un nombre de usuario después de él.

Linuxsudo Switchuser

Esto le indicará al sistema que cambie (y esencialmente 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 quiere acceso directo a la cuenta raíz en el sistema. no pasa sudo o algo por el estilo. En su lugar, se le pide que ingrese la contraseña del usuario raíz, ya que literalmente está iniciando sesión en él. Además, otras formas de obtener acceso raíz no tienen la ventaja de obtener también acceso al directorio de inicio raíz y al entorno raíz.

Advertencia: usando su es la forma menos segura de ejecutar una acción raíz. Generalmente, si puede evitarlo, no use esto.

su-c

Este comando pasa otros comandos al usuario raíz directamente.

Linuxsudo Suc

Similar a escribir sudo ante un comando, su -c ejecutará un comando como usuario raíz. Sin embargo, en lugar de simplemente escribir el comando, tendrá que ponerlo entre comillas.

Esta es una forma rápida de disparar un comando a través de su terminal con privilegios elevados. Es muy útil si sudo de alguna manera no está disponible (no viene preinstalado en distribuciones como Arch Linux) o no funciona correctamente porque está dañado.

Dado que está pasando algo directamente a la raíz, si sus contraseñas de usuario y de raíz son diferentes, tendrá que escribir su contraseña de raíz para autenticarse.

sudo su

Este comando solicita la contraseña del usuario actual en lugar de root.

Linuxsudo Sudosu

Es esencialmente lo mismo que simplemente correr su en el shell, excepto por una diferencia crucial: en lugar de decirle al sistema que «cambie de usuario» directamente, le está diciendo que ejecute el su comando con privilegios de superusuario. Cuándo sudo su se ejecuta, “.profile”, “.bashrc” y “/etc/profile” se iniciarán, al igual que ejecutar su (o su root). Si se ejecuta algún comando con sudo frente a él, se le otorgan privilegios de root.

Aunque no hay una gran divergencia entre sudo su y suel primero 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, deben conocer la contraseña de root. La raíz se da con sudo su solicitando la contraseña del usuario actual, lo que hace posible obtener la raíz sin la contraseña de raíz.

Esto es útil en situaciones en las que puede haber olvidado la contraseña de root si es diferente de la contraseña de su cuenta de usuario. Si bien puede hacer esto mientras tanto, aún debe restablecer la contraseña de root en algún momento.

sudo -i

Usando sudo -i es prácticamente el mismo que el sudo su comando con una excepción: no interactúa directamente con el usuario root.

Linuxsudo Sudoi

Muy parecido sudo suel -i flag permite a un usuario obtener un entorno raíz sin tener que conocer la contraseña de la cuenta raíz. sudo -i también es muy similar a usar sudo su: leerá todos los archivos ambientales («.profile», etc.) y establecerá el entorno dentro del shell.

Donde se diferencia sudo su es eso sudo -i es una forma mucho más limpia de obtener root y un entorno root sin interactuar directamente con el usuario root.

Para aclarar: con sudo suestás usando más de una raíz setuid Comando en segundo plano. Esto hace que sea mucho más difícil determinar qué variables ambientales se mantendrán y cuáles se cambiarán (al cambiar al entorno raíz). Esto no es cierto con sudo -i. Debido a esto, la mayoría de las personas lo ven como el método preferido para obtener la raíz sin iniciar sesión directamente.

En un lenguaje más simple: sudo -i le dará un inicio de sesión raíz «limpio» en su carpeta «/ raíz», que es la carpeta «inicio» para el usuario raíz.

sudo-s

Este comando invoca un shell con su variable $SHELL.

Linuxsudo Sudos

Él -s interruptor para el sudo El comando lee la variable $SHELL del usuario actual que ejecuta los comandos. Este comando funciona como si el usuario estuviera ejecutando sudo /bin/bashsi el shell del que proviene el usuario es bash.

En nuestro caso, sudo -s nos dio el shell interactivo de fish, ya que previamente instalamos fish como nuestro shell predeterminado, por lo que sería como si ejecutáramos sudo /usr/bin/fish.

Linuxsudo Shellswitch

Sudo -s es un shell de estilo «sin inicio de sesión». A diferencia de un comando como sudo -i o sudo su, el sistema no leerá ningún archivo ambiental. Cuando un usuario le dice al shell que se ejecute sudo -s, gana root pero no cambiará el entorno del usuario. Su hogar no será el hogar raíz, etc.

Comandos Linuxsudo

Este comando se usa mejor cuando el usuario desea cambiar a root pero mantener el mismo entorno de shell. Por ejemplo, es posible que desee ejecutar un script de pescado y no verse forzado a entrar en el shell de bash predeterminado esa raíz a menudo se obtiene en la mayoría de las distribuciones.

Otros comandos cubiertos anteriormente obtienen acceso a la raíz, pero también le darán las variables de entorno y shell que la distribución tiene para la raíz. ¡Quizás solo quieras cambiar al usuario sin todo ese equipaje!

Preguntas frecuentes

¿Por qué importaría el caparazón con el que estoy corriendo?

Si usa un shell bash no modificado para su cuenta de usuario, la diferencia es principalmente filosófica. En la mayoría de los casos, la elevación a la raíz a través de cualquiera de los shells no dará como resultado ningún cambio notable. Pero si ejecuta cualquier otra cosa, inmediatamente notará cuán diferentes pueden ser las cosas.

Por ejemplo, supongamos que está ejecutando el shell de pescado para su cuenta de usuario y mantiene el shell de raíz en bash. Cargando el shell de usuario usando sudo -s da un resultado radicalmente diferente.

El shell seguirá cualquier configuración que tenga en la carpeta de inicio de la raíz. Si no tiene tal cosa, simplemente cargará la configuración predeterminada en lugar de la personal. (En nuestro caso, sería “~/.config/fish/config.fish”.) Para todos los efectos, es mejor dejar las cosas así en lugar de copiar la configuración del usuario en “/root”.

Cambiar al shell de su cuenta de usuario al cambiar a root solo debe hacerse si necesita ejecutar un script que necesita absolutamente ese shell en particular.

¿Acceder a la raíz puede dañar mi sistema?

En algunos casos, sí. A menos que esté absolutamente seguro de que necesita acceder a la raíz para todo en una sesión de terminal en particular, a menudo es mejor simplemente escribir sudo seguido de un comando, si desea acceder a la raíz para ese comando en particular. Por ejemplo, escribir sudo apt install vlc en cualquier versión de Linux basada en Debian le diría al sistema operativo que acceda a la raíz solo para ejecutar el administrador de paquetes APT para instalar VLC.

Una advertencia muy importante para correr sudo -i o cualquier otra variante que hayamos discutido anteriormente en lugar de escribir sudo antes de cada comando que desea ejecutar como root es que el primero no registra su historial de comandos en «/var/log/auth.log». Si te equivocas, no puedes volver atrás y revisar lo que hiciste para poder corregirlo. Tendrá que operar sin memoria, ya que las sesiones raíz no se registran.

Cuando escribo «sudo» antes de un comando, ¿qué variante de «sudo su» estoy ejecutando?

Escribiendo sudo para ejecutar un comando (es decir, lo está escribiendo en la misma línea que el comando que desea ejecutar), básicamente lo está ejecutando bajo un shell raíz interactivo. Esto sería lo que sudo -s el comando independiente lo hace. También es muy similar a ejecutar el su -c dominio.

Todas las capturas de pantalla por Miguel Leiva-Gomez.

¿Le ha parecido útil este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.