¿Cómo ejecutar Terminal como root?

35

Cuando queremos ejecutar un programas como root usamos sudo, gksu, gksudo, etc Ahora mi pregunta es ¿cómo puede funcionar un terminal como el usuario root en el terminal?

Intenté usar gksudo terminaly gksu terminalpero no pasa nada. y al ejecutar sudo terminalme sale un error sudo: terminal: command not found.

αғsнιη
fuente
44
Es gnome-terminal. Así que inténtalo sudo gnome-terminal.
g_p
1
¿Existe realmente alguna ventaja en ejecutar el programa del terminal como root? ¿por qué no simplemente iniciar un shell raíz interactivo dentro del terminal con sudo -i?
steeldriver
2
@Guru sudono debería usarse para ejecutar programas gráficos como este. Si gksu/ gksudono está (o podría no estar) instalado, sudo -H ...(o sudo -i ...) se puede usar para ejecutar una aplicación gráfica ...como root.
Eliah Kagan el
sí, estás en lo correcto.
g_p

Respuestas:

53

El emulador de terminal predeterminado en Ubuntu es el Terminal de GNOME . Está ubicado en /usr/bin/gnome-terminaly se puede ejecutar con el gnome-terminalcomando.

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 establecidas para root en lugar de para su usuario).

Asumiendo que eso es lo que desea, como Steeldriver ha sugerido , simplemente ejecute:

sudo -i

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

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

Con gksu/gksudo

Como tiene instalado el paquete gksuInstalar gksu , puede ejecutarlo gnome-terminalcomo root con cualquiera de:

gksu gnome-terminal
gksudo gnome-terminal

(Como gksuestá configurado en modo sudo en Ubuntu de forma predeterminada, estos deberían ser equivalentes).

Ejecutando gnome-terminalcomo root sin un terminal de control no root:

Prácticamente todos los entornos de escritorio brindan la posibilidad de ejecutar un comando sin tener que abrir un terminal (lo que, de ser así, normalmente provocaría la finalización del comando).

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

Por ejemplo, se ve así en Unity:

Ejecute un cuadro de texto de comando en Unity

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

Cuadro de diálogo Ejecutar comando en MATE

Tenga en cuenta que esto funciona con gksuy gksudoporque utilizan un cuadro de diálogo de autenticación gráfico. Si tuviera que presionar Alt+ F2y ejecutar sudo ..., no podría interactuar con la solicitud de contraseña.

Con sudo

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

sudo -H gnome-terminal

El -Hindicador es importante porque establece la HOMEvariable de entorno en /rootlugar del directorio de inicio de su propio usuario. Usted debe no utilizar 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:

( sudo -i gnome-terminaltambién está bien)

Deshacerse de la terminal de control no root:

Si (1) abre una terminal gráfica, (2) ejecuta algo como sudo -H gnome-terminalen ella, para crear una nueva terminal raíz gráfica, y (3) sale de la terminal gráfica original no raíz ... entonces la terminal gráfica raíz también se cierra .

Esto se debe a que el terminal gráfico raíz se envía SIGHUP cuando se sale del terminal que lo posee.

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 sudono tiene que solicitar una contraseña. Si lo hace, no verá la solicitud de contraseña.

Una forma de evitar esto es usar:

sudo -v
sudo -H gnome-terminal

sudo -vexiste solo para este propósito. Como se explica en man sudo"actualiza" las credenciales almacenadas en caché del usuario, autenticándolo si es necesario ".

Tenga en cuenta que esto todavía no funcionará si se ejecuta directamente desde el cuadro Alt+ F2"comando de ejecución" de su entorno de escritorio , porque aún necesita un terminal para ingresar su contraseña sudo -v.

O puede hacerlo de la manera tradicional, suspendiendo el trabajo una vez que comienza:

  1. Ejecutar sudo -H gnome-terminaldesde el terminal gráfico original no root.
  2. Ingrese su contraseña cuando se le solicite sudo. Se iniciará el terminal gráfico.
  3. Aún en el terminal no root , presione Ctrl+ Zpara suspender el terminal root. Mientras el terminal raíz está suspendido, no puede usarlo; Su interfaz no responderá a sus acciones.
  4. Salga de la terminal de control no root con exit. El trabajo del terminal raíz gráfico será suspendido y desautorizado por el terminal no raíz, automáticamente.

En breve:

sudo -H gnome-terminal
^Z
exit

Pero suponga que también desea seguir usando el terminal original no root. Luego podría ejecutar , donde está el número de trabajo del terminal raíz gráfico, para reanudar el trabajo en segundo plano. Puede ejecutar para buscar, pero probablemente no tendrá que hacerlo: ese número se mostró como cuando presionó + . Por ejemplo:bg NNjobsN[N]CtrlZ

ek@Ilex:~$ sudo -H gnome-terminal
[sudo] password for ek: 
^Z
[1]+  Stopped                 sudo -H gnome-terminal
ek@Ilex:~$
Eliah Kagan
fuente
Yo también puedo correr xterm. ¿Cuántos terminales existen en Ubuntu?
αғsнιη
@KasiyA mucho. Una vez dejé de contar en 25. Masilla, Terminator se usan mucho también.
Rinzwind
6

Respuesta corta:

gksudo gnome-terminal
(assuming gksu is installed)

abre una terminal como root:

root@jacob-Satellite-L300:~#

No es necesario explicar que puede usar esto para abrir cualquier terminal como raíz como esta; como Vala ( gksudo vala-terminal), Xterm ( gksudo xterm), Termit ( gksudo termit), UXTerm ( gksudo uxterm), Konsole ( gksudo konsole) y así sucesivamente.

Jacob Vlijm
fuente
1
¿Qué hay de esto sudo x-terminal-emulator?
αғsнιη
@KasiyA Todavía debe utilizar gksu x-terminal-emulator, gksudo x-terminal-emulator, kdesudo x-terminal-emulator(si su entorno de escritorio KDE es), sudo -H x-terminal-emulatoro sudo -i x-terminal-emulatoren su lugar, para evitar ese problema . Del mismo modo, sudo geditno debe usarse para ejecutarse geditcomo root.
Eliah Kagan el
2

Como se indicó anteriormente, usted pregunta cómo ejecutar Terminal como root, pero lo más probable es que realmente quiera ejecutar la aplicación gráfica de Terminal como su usuario normal, e inicie un shell raíz dentro de él donde inició sesión como root. De esta manera, la aplicación gráfica de terminal no tiene privilegios de root. Las respuestas anteriores no parecen dar líneas de comando claras para usar, así que esto es lo que uso.

Con xterm

xterm -bg black -fg red -e sudo -i

El '-e sudo -i' le dice a xterm que cambie a root en la sesión, y los colores son solo para que sea muy obvio que es un shell raíz.

Con terminal de gnomo

gnome-terminal -- sudo -i

Personalmente, ato las combinaciones de teclas de Gnome para lanzar terminales fácilmente

Vaya a Configuración del teclado, agregue un acceso directo personalizado con Shortcut Super + X y el comando 'xterm -bg black -fg white -sb -sl 5000', y root xterm con Shortcut Super + Z y el comando 'xterm -bg black -fg red - sb -sl 5000 -e sudo -i '.

En el pasado, he tendido a preferir xterm a Gnome Terminal porque la fuente es pequeña y simple, pero estoy llegando a la Terminal ahora que ejecuto pantallas grandes de alta DPI. La codificación de color de sus terminales es una muy buena idea una vez que comience a ejecutar diferentes perfiles con consecuencias peligrosas para evitar accidentes (por ejemplo, raíz local, máquina del cliente remoto, raíz del cliente remoto).

Neek
fuente
0

Hay otra forma de hacerlo, probado y trabajando en Ubuntu 16.04 LTS:

Primero instale gnome-panel:

sudo apt install gnome-panel

Luego instale gksu:

sudo apt install gksu

Una vez completada la instalación, ejecute:

gnome-desktop-item-edit ~/Desktop/ --create-new

Esto crea un acceso directo de escritorio. Deberías tener la opción de nombrarlo. Llamé al mío 'X-Term' pero puedes llamar al tuyo prácticamente como quieras. Escriba /usr/bin/gksu* para la ruta 'Comando'.

Cuando inicie su nuevo acceso directo de escritorio, se le pedirá que ejecute una aplicación. Escriba: xterm.

Ahora se le pedirá su contraseña; Una vez que lo ingrese, tendrá acceso a un terminal raíz que funcione. Recuerde usar solo cuando sea absolutamente necesario y cerrar cuando haya terminado.

* suponiendo que instaló Ubuntu con la configuración predeterminada y no ha cambiado significativamente ninguno de los sistemas de archivos desde la instalación.

Peter David Carter
fuente
0

Estoy usando Debian 9 stretch

Vaya a atajos de teclado, agregue un comando como este:

`gksu / usr / bin / x-terminal-emulator '

Lo había puesto Super + Tcomo atajo.

Ahora, cada vez que desee abrir una terminal como root, simplemente escriba su acceso directo

Espero que pueda ayudar a alguien en el futuro

Alex
fuente
-1

Puede iniciar un shell interactivo con:

sudo -s

Para más información hacer:

man sudo

y lee la -s --shellsección.

usuario465589
fuente