Como executar o Terminal como root?

35

Quando quiser executar um programa como root usamos sudo, gksu, gksudoe etc. Agora a minha pergunta é como é que nós podemos executar um terminal como usuário root no Terminal?

Eu tentei usar gksudo terminale gksu terminalnada acontece. e executando sudo terminal, recebo erro sudo: terminal: command not found.

αғsнιη
fonte
4
É gnome-terminal. Então tente sudo gnome-terminal.
g_p 23/08/14
11
Existe realmente alguma vantagem em executar o próprio programa do terminal como root? por que não iniciar um shell raiz interativo dentro do terminal sudo -i?
Steeldriver
2
O @Guru sudonão deve ser usado para executar programas gráficos como este. Se gksu/ gksudonão estiver (ou não estiver) instalado, sudo -H ...(ou sudo -i ...) poderá ser usado para executar um aplicativo gráfico ...como raiz.
Eliah Kagan
sim você está correto.
g_p 23/08/14

Respostas:

53

O emulador de terminal padrão no Ubuntu é o Terminal GNOME . Ele está localizado em /usr/bin/gnome-terminale pode ser executado com o gnome-terminalcomando

O que você realmente quer

O que você provavelmente deseja é um shell executando como root, como se tivesse sido produzido a partir de um logon root (por exemplo, com todas as variáveis ​​de ambiente definidas para root e não para o usuário).

Supondo que é isso que você deseja, como sugeriu a steeldriver , basta executar:

sudo -i

Você terá um shell raiz no qual os comandos que você digitar serão executados como root (sem precisar precedê-los sudo).

Mas se você realmente deseja executar o aplicativo emulador de terminal gráfico como root, continue lendo. Apresento duas maneiras: com gksu/ gksdoe com o sudocomando

Com gksu/gksudo

Como você tem o pacote gksuInstale o gksu instalado, você pode executar gnome-terminalcomo root com um dos seguintes:

gksu gnome-terminal
gksudo gnome-terminal

(Como gksué definido no modo sudo no Ubuntu por padrão, eles devem ser equivalentes.)

Executando gnome-terminalcomo root sem um terminal não raiz de controle:

Praticamente todos os ambientes de área de trabalho oferecem a facilidade de executar um comando sem a necessidade de abrir um terminal (o que, se fechado, normalmente causa o encerramento do comando).

Isso geralmente é alcançado com Alt+ F2. Uma caixa de texto chamada Executar comando (ou similar) será exibida e você poderá inserir seu comando.

Por exemplo, fica assim no Unity:

Execute uma caixa de texto de comando no Unity

E assim no MATE (GNOME Flashback / Fallback, Xfce, LXDE são semelhantes):

Caixa de diálogo Executar Comando no MATE

Observe que isso funciona com gksue gksudoporque eles usam uma caixa de diálogo de autenticação gráfica. Se você pressionar Alt+ F2e executar sudo ..., não poderá interagir com o prompt de senha.

Com sudo

Se você não possui o pacote gksu e não deseja instalá-lo, pode usar:

sudo -H gnome-terminal

O -Hsinalizador é importante porque define a HOMEvariável de ambiente como em /rootvez do diretório inicial do seu próprio usuário. Você não deve usar, sudo gnome-terminalpois isso pode interromper a configuração do terminal gnome pertencente ao usuário não root. Para mais informações sobre isso, consulte:

( sudo -i gnome-terminaltambém está bem.)

Livrando-se do terminal não raiz de controle:

Se você (1) abrir um terminal gráfico, (2) executar algo parecido sudo -H gnome-terminalcom ele, para criar um novo terminal raiz gráfico e (3) sair do terminal gráfico não raiz original ... então o terminal gráfico raiz também será encerrado .

Isso ocorre porque o terminal gráfico raiz é enviado SIGHUP quando o terminal que o possui é encerrado.

Para evitar isso, você pode pensar em iniciar o terminal raiz gráfico com:

sudo -H gnome-terminal &

Mas isso só funcionará se sudonão for necessário solicitar uma senha. Caso isso aconteça, você não verá o prompt da senha.

Uma maneira de contornar isso é usar:

sudo -v
sudo -H gnome-terminal

sudo -vexiste apenas para esse fim. Conforme explicado em man sudo, ele "atualiza [s] as credenciais em cache do usuário, autenticando o usuário, se necessário."

Observe que isso ainda não funcionará se for executado diretamente na caixa Alt+ F2"comando de execução" do ambiente de área de trabalho , porque você ainda precisa de um terminal para digitar sua senha sudo -v.

Ou você pode fazê-lo da maneira tradicional, suspendendo o trabalho após o início:

  1. Execute a sudo -H gnome-terminalpartir do terminal gráfico não raiz original.
  2. Digite sua senha conforme solicitado sudo. O terminal gráfico será iniciado.
  3. Ainda no terminal não raiz , pressione Ctrl+ Zpara suspender o terminal raiz. Enquanto o terminal raiz está suspenso, você não pode usá-lo; sua interface não responderá às suas ações.
  4. Saia do terminal não raiz de controle com exit. O trabalho do terminal raiz gráfico será suspenso e rejeitado pelo terminal não raiz automaticamente.

Em resumo:

sudo -H gnome-terminal
^Z
exit

Mas suponha que você queira continuar usando o terminal não raiz original também. Em seguida, você pode executar , onde está o número do trabalho do terminal raiz gráfico, para continuar o trabalho em segundo plano. Você pode correr para encontrar, mas provavelmente não precisará - esse número foi mostrado como quando você pressionava + . Por exemplo: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
fonte
Eu também posso correr xterm. quantos terminais existem no Ubuntu?
αғsнιη
@KasiyA muito. Certa vez, parei de contar aos 25 anos. Putty, Terminator também são muito usados.
Rinzwind
6

Resposta curta:

gksudo gnome-terminal
(assuming gksu is installed)

abre um terminal como root:

root@jacob-Satellite-L300:~#

Não é necessário explicar que você pode usar isso para abrir qualquer terminal como root como esse; como Vala ( gksudo vala-terminal), Xterm ( gksudo xterm), Termit ( gksudo termit), UXTerm ( gksudo uxterm), Konsole ( gksudo konsole) e assim por diante.

Jacob Vlijm
fonte
11
E isso sudo x-terminal-emulator?
αғsнιη
@KasiyA Você ainda deve usar gksu x-terminal-emulator, gksudo x-terminal-emulator, kdesudo x-terminal-emulator(se o seu ambiente de trabalho é o KDE), sudo -H x-terminal-emulatorou sudo -i x-terminal-emulatorem vez disso, para evitar esse problema . Da mesma forma, sudo geditnão deve ser usado para executar geditcomo root.
Eliah Kagan
2

Como mencionado anteriormente, você pergunta como executar o Terminal como root, mas é mais provável que você queira executar o aplicativo gráfico do Terminal como usuário normal e inicie um shell raiz dentro dele, onde está conectado como root. Dessa maneira, o aplicativo de terminal gráfico não recebe privilégios de root. As respostas anteriores não parecem fornecer linhas de comando claras para uso, então aqui está o que eu uso.

Com xterm

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

O '-e sudo -i' diz ao xterm para mudar para o root na sessão, e as cores são apenas para tornar muito óbvio que é um shell raiz.

Com Terminal Gnome

gnome-terminal -- sudo -i

Pessoalmente, vinculo os atalhos de teclado do Gnome para iniciar terminais facilmente

Vá para Configurações do teclado, adicione um atalho personalizado com o atalho Super + X e comando 'xterm -bg preto -fg branco -sb -sl 5000' e root xterm com o atalho Super + Z e comando 'xterm -bg preto -fg vermelho - sb -sl 5000 -e sudo -i '.

No passado, eu costumava preferir o xterm ao invés do Gnome Terminal, porque a fonte é pequena e simples, mas estou voltando para o Terminal agora e corro telas grandes de DPI alto. A codificação por cores dos seus terminais é uma boa ideia quando você começa a executar perfis diferentes com consequências perigosas para evitar acidentes (por exemplo, raiz local, máquina do cliente remoto, raiz do cliente remoto).

Neek
fonte
0

Há outra maneira de fazer isso, testado e funcionando no Ubuntu 16.04 LTS:

Primeiro instale o gnome-panel:

sudo apt install gnome-panel

Em seguida, instale o gksu:

sudo apt install gksu

Após a conclusão da instalação, execute:

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

Isso cria um atalho na área de trabalho. Você deve ter a opção de nomeá-lo. Eu chamei o meu de 'X-Term', mas você pode chamar o seu do jeito que quiser. Digite /usr/bin/gksu* para o caminho 'Command'.

Ao iniciar seu novo atalho na área de trabalho, você será solicitado a executar um aplicativo. Digite: xterm.

Agora você será solicitado a fornecer sua senha; Depois de inseri-lo, você terá acesso a um terminal raiz ativo. Lembre-se de usar somente quando absolutamente necessário e feche quando terminar.

* Supondo que você instalou o Ubuntu com configurações padrão e não alterou nenhum sistema de arquivos significativamente desde a instalação.

Peter David Carter
fonte
0

Estou usando o Debian 9 stretch

Vá para atalhos de teclado, adicione um comando como este:

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

Eu tinha colocado Super + Tcomo atalho.

Agora, toda vez que você quiser abrir um terminal como root, digite seu atalho

Espero que ajude alguém no futuro

Alex
fonte
-1

Você pode iniciar um shell interativo com:

sudo -s

Para mais informações, faça:

man sudo

e leia a -s --shellseção.

user465589
fonte