GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo ejecutar Terminal como raíz?

Cuando queremos ejecutar un programa como root usamos sudo , gksu , gksudo y etc. Ahora mi pregunta es ¿cómo podemos ejecutar una Terminal como usuario raíz en la Terminal?

Probé usando gksudo terminal y gksu terminal pero nada pasa. y ejecutando sudo terminal Recibo el error sudo: terminal: command not found .

Mejor respuesta

El emulador de terminal predeterminado en Ubuntu es GNOME Terminal. Se encuentra en /usr/bin/gnome-terminal y se puede ejecutar con el gnome-terminal comando.

Lo que realmente quieres

Lo que probablemente desee es un shell que se ejecute como root, como si se produjera a partir de un inicio de sesión de root (por ejemplo, con todas las variables de entorno configuradas para root en lugar de para su usuario).

Suponiendo que eso es lo que quiere, como sugirió steeldriver, simplemente ejecute:

sudo -i

Tendrá un shell raíz en el que los comandos que ingrese se ejecutarán como raíz (sin tener que precederlos con sudo ).

Pero si realmente desea ejecutar la aplicación de emulador de terminal gráfico como root, siga leyendo. Presento dos formas:con gksu /gksdo , y con el sudo comando.

Con gksu /gksudo

Ya que tienes el gksu paquete instalado, puede ejecutar gnome-terminal como root con cualquiera de:

gksu gnome-terminal
gksudo gnome-terminal

(Desde gksu está configurado en modo sudo en Ubuntu de forma predeterminada, estos deberían ser equivalentes).

Ejecutando gnome-terminal como root sin un terminal de control que no sea root:

Prácticamente todos los entornos de escritorio brindan la posibilidad de ejecutar un comando sin tener que abrir una terminal (que, si se cierra, generalmente provocaría la terminación del comando).

Esto generalmente se logra con Alt +F2 . Un cuadro de texto con la etiqueta Ejecutar comando (o similar) aparecerá y podrá ingresar su comando.

Por ejemplo, se ve así en Unity:

Y así en MATE (GNOME Flashback/Fallback, Xfce, LXDE son similares):

Tenga en cuenta que esto funciona con gksu y gksudo porque utilizan un cuadro de diálogo de autenticación gráfica. Si tuviera que pulsar Alt +F2 y ejecuta sudo ... , entonces no podrá interactuar con la solicitud de contraseña.

Con sudo

Si no tiene el paquete gksu y no quiere instalarlo, puede usar:

sudo -H gnome-terminal

El -H es importante porque establece el HOME variable de entorno a /root en lugar del directorio de inicio de su propio usuario. No deberías no use sudo gnome-terminal ya que puede romper la configuración de gnome-terminal que pertenece al usuario no root. Para obtener más información al respecto, consulte:

  • RootSudo en la wiki de ayuda de Ubuntu
  • ¿Por qué los usuarios nunca deberían usar sudo normal para iniciar aplicaciones gráficas?

(sudo -i gnome-terminal también está bien.)

Deshacerse del terminal controlador no root:

Si (1) abre una terminal gráfica, (2) ejecuta algo como sudo -H gnome-terminal en él, para crear un nuevo terminal raíz gráfico, y (3) salga del terminal gráfico original que no sea raíz... entonces el terminal gráfico raíz también se cerrará.

Relacionado:¿Sudo ya no pide contraseña?

Esto se debe a que se envía SIGHUP al terminal gráfico raíz cuando se sale del terminal al que pertenece.

Para evitar esto, podría pensar que podría iniciar el terminal raíz gráfico con:

sudo -H gnome-terminal &

Pero esto solo funcionará si sudo no tiene que solicitar una contraseña. Si es así, no verá la solicitud de contraseña.

Solo ida solucionar esto es usar:

sudo -v
sudo -H gnome-terminal

sudo -v existe sólo para este propósito. Como se explica en man sudo , "actualiza las credenciales almacenadas en caché del usuario, autenticando al usuario si es necesario".

O puede hacerlo en lo que podría llamarse la forma tradicional, suspendiendo el trabajo después de que comience:

  1. Ejecute sudo -H gnome-terminal desde el terminal gráfico no root original.
  2. Ingrese su contraseña como lo solicita sudo . Se iniciará el terminal gráfico.
  3. Aún en la terminal no raíz , presione Ctrl +Z para suspender el terminal raíz. Mientras la terminal raíz está suspendida, no puede usarla; su interfaz no responderá a tus acciones.
  4. Salga del terminal no root de control con exit . El trabajo de la terminal raíz gráfica será suspendido y repudiado por la terminal no raíz, automáticamente.

En resumen:

sudo -H gnome-terminal
^Z
exit

Pero supongamos que también desea seguir usando el terminal original que no es root. Entonces podría ejecutar bg N , donde N es el número de trabajo del terminal raíz gráfico, para reanudar el trabajo en segundo plano. Puede ejecutar jobs para encontrar N pero probablemente no tengas que hacerlo, ese número se mostró como [N] cuando presionaste Ctrl +Z . Por ejemplo:

[email protected]:~$ sudo -H gnome-terminal
[sudo] password for ek: 
^Z
[1]+  Stopped                 sudo -H gnome-terminal
[email protected]:~$

Ubuntu
  1. Cómo ejecutar Google Chrome como root en openSUSE 12.1

  2. ¿Cómo ejecutar un programa específico como root sin una solicitud de contraseña?

  3. ¿Cómo funcionan las partes internas de Sudo?

  4. ¿Cómo hacer retroactivamente que un script se ejecute como raíz?

  5. ¿Cómo ejecutar Wireshark en Ubuntu 17.10?

Cómo instalar LAMP en Manjaro 20

Cómo instalar Magento en Debian 11

Cómo instalar phpIPAM en Ubuntu 20.04 LTS

¿Cómo ejecutar Dolphin como root?

Cómo ejecutar un alias con Sudo en Linux

Cómo ejecutar comandos sudo sin contraseña