Comment exécuter Terminal en tant que root?

25

Lorsque nous voulons exécuter un programme en tant que root, nous utilisons sudo , gksu , gksudo et etc. Maintenant, ma question est de savoir comment exécuter un terminal en tant qu'utilisateur root dans Terminal?

J'ai essayé d'utiliser gksudo terminal et gksu terminal mais rien ne se passe. et en exécutant sudo terminal , j'obtiens l'erreur sudo: terminal: command not found .

    
posée αғsнιη 23.08.2014 - 21:44
la source

5 réponses

40

L’émulateur de terminal par défaut sur Ubuntu est le terminal GNOME . Il est situé à /usr/bin/gnome-terminal et peut être exécuté avec la commande gnome-terminal .

Ce que vous voulez vraiment

Ce que vous voulez sans doute, c’est un shell fonctionnant en tant que root, comme s’il était produit à partir d’une connexion root (par exemple, avec toutes les variables d’environnement définies pour root plutôt que pour votre utilisateur).

En supposant que c'est ce que vous voulez, comme Steeldriver a suggéré , lancez simplement :

sudo -i

Vous aurez un shell racine dans lequel les commandes que vous entrez seront exécutées en tant que root (sans devoir les faire précéder de sudo ).

Mais si vous voulez vraiment lancer l'application de l'émulateur de terminal graphique en tant que root, lisez la suite. Je présente deux manières: avec gksu / gksdo et avec la commande sudo .

Avec gksu / gksudo

Comme vous avez le gksu installé, vous pouvez exécuter gnome-terminal en tant que root avec l'un des:

gksu gnome-terminal
gksudo gnome-terminal

(Puisque gksu est défini sur sudo-mode dans Ubuntu par défaut, ceux-ci devraient être équivalents.)

Exécution de gnome-terminal en tant que root sans terminal non root contrôlant:

Pratiquement tous les environnements de bureau offrent la possibilité d’exécuter une commande sans avoir à ouvrir un terminal (ce qui entraînerait la fermeture de la commande si elle était fermée).

Ceci est généralement réalisé avec Alt + F2 . Une zone de texte intitulée Exécuter la commande (ou similaire) apparaîtra et vous pourrez saisir votre commande.

Par exemple, cela ressemble à ceci dans Unity:

Et comme dans MATE (Flashback / Fallback GNOME, Xfce, LXDE sont similaires):

Notez que cela fonctionne avec gksu et gksudo car ils utilisent une boîte de dialogue d’authentification graphique. Si vous appuyez sur Alt + F2 et exécutez sudo ... , vous ne pourrez alors pas interagir avec l'invite de mot de passe.

Avec sudo

Si vous ne possédez pas le paquet gksu et que vous ne souhaitez pas l’installer, vous pouvez utiliser:

sudo -H gnome-terminal

L'indicateur -H est important car il définit la variable d'environnement HOME sur /root au lieu du répertoire de base de votre propre utilisateur. Vous devriez pas utiliser sudo gnome-terminal car cela peut casser la configuration de gnome-terminal appartenant à l'utilisateur non root. Pour plus d'informations à ce sujet, voir:

( sudo -i gnome-terminal est également correct.)

Se débarrasser du terminal non root contrôlant:

Si vous (1) ouvrez un terminal graphique, (2) exécutez quelque chose comme sudo -H gnome-terminal pour créer un nouveau terminal racine graphique, et (3) quitte le terminal graphique non root d'origine, puis le terminal graphique racine se ferme également.

Ceci est dû au fait que le terminal graphique racine est envoyé SIGHUP lorsque le terminal qui le possède est sorti.

Pour éviter cela, vous pourriez penser que vous pourriez plutôt lancer le terminal racine graphique avec:

sudo -H gnome-terminal &

Mais cela ne fonctionnera que si sudo n’a pas à demander un mot de passe. Si c'est le cas, vous ne verrez pas l'invite de mot de passe.

Une solution pour contourner ce problème consiste à utiliser:

sudo -v
sudo -H gnome-terminal

sudo -v existe uniquement pour cette raison. Comme expliqué dans man sudo , il "met à jour les informations d'identification de l'utilisateur en cache, en authentifiant le utilisateur si nécessaire. "

Notez que cela ne fonctionnera toujours pas si vous exécutez directement depuis la boîte Alt + F2 de votre environnement de bureau, car vous avez toujours besoin d'un terminal pour entrez votre mot de passe pour sudo -v .

Ou vous pouvez le faire de la manière classique, en suspendant le travail après son démarrage:

  1. Exécutez sudo -H gnome-terminal à partir du terminal graphique non root d'origine.
  2. Entrez votre mot de passe à l'invite de sudo . Le terminal graphique démarrera.
  3. Toujours dans le terminal non root , appuyez sur Ctrl + Z pour suspendre le terminal racine. Tant que le terminal racine est suspendu, vous ne pouvez pas l'utiliser. son interface ne répondra pas à vos actions.
  4. Quittez le terminal non root contrôlant avec exit . Le travail du terminal racine graphique sera automatiquement suspendu et annulé par le terminal non root.

En bref:

sudo -H gnome-terminal
^Z
exit

Mais supposons que vous vouliez continuer à utiliser le terminal non root original. Vous pouvez ensuite exécuter bg N , où N est le numéro de travail du terminal racine graphique pour reprendre le travail en arrière-plan. Vous pouvez exécuter jobs pour trouver N mais vous n'aurez probablement pas à le faire - ce nombre était affiché sous la forme [N] lorsque vous avez appuyé sur Ctrl + Z . Par exemple:

[email protected]:~$ sudo -H gnome-terminal
[sudo] password for ek: 
^Z
[1]+  Stopped                 sudo -H gnome-terminal
[email protected]:~$
    
réponse donnée Eliah Kagan 23.08.2014 - 22:22
la source
5
___ answer767973 ___

Il existe une autre façon de faire cela, testé et fonctionnant sur Ubuntu 16.04 LTS:

Installez d'abord gnome-panel:

gksudo gnome-terminal
(assuming gksu is installed)

Installez ensuite gksu:

[email protected]:~#

Une fois l’installation terminée, exécutez:

%pre%

Cela crée un raccourci sur le bureau. Vous devriez avoir la possibilité de le nommer. J'ai appelé le mien "X-Term" mais vous pouvez appeler le vôtre à peu près tout ce que vous voulez. Tapez gksudo vala-terminal * pour le chemin 'Command'.

Lorsque vous lancez votre nouveau raccourci sur le bureau, vous êtes invité à exécuter une application. Tapez: gksudo xterm .

Vous serez maintenant invité à entrer votre mot de passe; une fois entré, vous aurez accès à un terminal racine actif. N'oubliez pas de ne l'utiliser que lorsque c'est absolument nécessaire et fermez lorsque vous en avez fini avec.

* en supposant que vous avez installé Ubuntu avec les paramètres par défaut et que vous n’avez pas modifié les systèmes de fichiers de manière significative depuis l’installation.

    
___ qstntxt ___

Lorsque nous voulons exécuter un programme en tant que root, nous utilisons gksudo termit , gksudo uxterm , gksudo konsole et etc. Maintenant, ma question est de savoir comment exécuter un terminal en tant qu'utilisateur root dans Terminal?

J'ai essayé d'utiliser %code% et %code% mais rien ne se passe. et en exécutant %code% , j'obtiens l'erreur %code% .

    
___ answer1011400 ___

J'utilise Debian 9 Stretch

Accédez aux raccourcis clavier, ajoutez une commande comme celle-ci:

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

J'avais mis %code% en raccourci.

Maintenant, chaque fois que vous voulez ouvrir un terminal en tant que root, tapez simplement votre raccourci

J'espère que cela peut aider quelqu'un à l'avenir

    
___ answer690567 ___

Vous pouvez lancer un shell interactif avec:

%pre%

Pour plus d’informations faire:

%pre%

et lisez la section %code% .

    
___ ___ answer515201

Réponse courte:

%pre%

ouvre un terminal en tant que root:

%pre%

Pas besoin d'expliquer que vous pouvez l'utiliser pour ouvrir ne importe quel terminal en tant que root comme celui-ci; comme Vala ( %code% ), Xterm ( %code% ), Termit ( %code% ), uxterm ( %code% ), Konsole ( %code% ) et ainsi de suite.

    
___ qstnhdr ___ Comment exécuter Terminal en tant que root? ___ answer515209 ___

L’émulateur de terminal par défaut sur Ubuntu est le terminal GNOME . Il est situé à %code% et peut être exécuté avec la commande %code% .

Ce que vous voulez vraiment

Ce que vous voulez sans doute, c’est un shell fonctionnant en tant que root, comme s’il était produit à partir d’une connexion root (par exemple, avec toutes les variables d’environnement définies pour root plutôt que pour votre utilisateur).

En supposant que c'est ce que vous voulez, comme Steeldriver a suggéré , lancez simplement :

%pre%

Vous aurez un shell racine dans lequel les commandes que vous entrez seront exécutées en tant que root (sans devoir les faire précéder de %code% ).

Mais si vous voulez vraiment lancer l'application de l'émulateur de terminal graphique en tant que root, lisez la suite. Je présente deux manières: avec %code% / %code% et avec la commande %code% .

Avec %code% / %code%

Comme vous avez le gksu installé, vous pouvez exécuter %code% en tant que root avec l'un des:

%pre% %pre%

(Puisque %code% est défini sur sudo-mode dans Ubuntu par défaut, ceux-ci devraient être équivalents.)

Exécution de %code% en tant que root sans terminal non root contrôlant:

Pratiquement tous les environnements de bureau offrent la possibilité d’exécuter une commande sans avoir à ouvrir un terminal (ce qui entraînerait la fermeture de la commande si elle était fermée).

Ceci est généralement réalisé avec Alt + F2 . Une zone de texte intitulée Exécuter la commande (ou similaire) apparaîtra et vous pourrez saisir votre commande.

Par exemple, cela ressemble à ceci dans Unity:

Et comme dans MATE (Flashback / Fallback GNOME, Xfce, LXDE sont similaires):

Notez que cela fonctionne avec %code% et %code% car ils utilisent une boîte de dialogue d’authentification graphique. Si vous appuyez sur Alt + F2 et exécutez %code% , vous ne pourrez alors pas interagir avec l'invite de mot de passe.

Avec %code%

Si vous ne possédez pas le paquet gksu et que vous ne souhaitez pas l’installer, vous pouvez utiliser:

%pre%

L'indicateur %code% est important car il définit la variable d'environnement %code% sur %code% au lieu du répertoire de base de votre propre utilisateur. Vous devriez pas utiliser %code% car cela peut casser la configuration de gnome-terminal appartenant à l'utilisateur non root. Pour plus d'informations à ce sujet, voir:

( %code% est également correct.)

Se débarrasser du terminal non root contrôlant:

Si vous (1) ouvrez un terminal graphique, (2) exécutez quelque chose comme %code% pour créer un nouveau terminal racine graphique, et (3) quitte le terminal graphique non root d'origine, puis le terminal graphique racine se ferme également.

Ceci est dû au fait que le terminal graphique racine est envoyé SIGHUP lorsque le terminal qui le possède est sorti.

Pour éviter cela, vous pourriez penser que vous pourriez plutôt lancer le terminal racine graphique avec:

%pre%

Mais cela ne fonctionnera que si %code% n’a pas à demander un mot de passe. Si c'est le cas, vous ne verrez pas l'invite de mot de passe.

Une solution pour contourner ce problème consiste à utiliser:

%pre%

%code% existe uniquement pour cette raison. Comme expliqué dans %code% , il "met à jour les informations d'identification de l'utilisateur en cache, en authentifiant le utilisateur si nécessaire. "

Notez que cela ne fonctionnera toujours pas si vous exécutez directement depuis la boîte Alt + F2 de votre environnement de bureau, car vous avez toujours besoin d'un terminal pour entrez votre mot de passe pour %code% .

Ou vous pouvez le faire de la manière classique, en suspendant le travail après son démarrage:

  1. Exécutez %code% à partir du terminal graphique non root d'origine.
  2. Entrez votre mot de passe à l'invite de %code% . Le terminal graphique démarrera.
  3. Toujours dans le terminal non root , appuyez sur Ctrl + Z pour suspendre le terminal racine. Tant que le terminal racine est suspendu, vous ne pouvez pas l'utiliser. son interface ne répondra pas à vos actions.
  4. Quittez le terminal non root contrôlant avec %code% . Le travail du terminal racine graphique sera automatiquement suspendu et annulé par le terminal non root.

En bref:

%pre%

Mais supposons que vous vouliez continuer à utiliser le terminal non root original. Vous pouvez ensuite exécuter %code% , où %code% est le numéro de travail du terminal racine graphique pour reprendre le travail en arrière-plan. Vous pouvez exécuter %code% pour trouver %code% mais vous n'aurez probablement pas à le faire - ce nombre était affiché sous la forme %code% lorsque vous avez appuyé sur Ctrl + Z . Par exemple:

%pre%     
___
réponse donnée Jacob Vlijm 23.08.2014 - 21:56
la source
0

Il existe une autre façon de faire cela, testé et fonctionnant sur Ubuntu 16.04 LTS:

Installez d'abord gnome-panel:

sudo apt install gnome-panel

Installez ensuite gksu:

sudo apt install gksu

Une fois l’installation terminée, exécutez:

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

Cela crée un raccourci sur le bureau. Vous devriez avoir la possibilité de le nommer. J'ai appelé le mien «X-Term» mais vous pouvez appeler le vôtre à peu près tout ce que vous voulez. Tapez /usr/bin/gksu * pour le chemin 'Command'.

Lorsque vous lancez votre nouveau raccourci sur le bureau, vous êtes invité à exécuter une application. Tapez: xterm .

Vous serez maintenant invité à entrer votre mot de passe; une fois entré, vous aurez accès à un terminal racine actif. N'oubliez pas de ne l'utiliser que lorsque c'est absolument nécessaire et fermez lorsque vous en avez fini avec.

* en supposant que vous avez installé Ubuntu avec les paramètres par défaut et que vous n’avez pas modifié les systèmes de fichiers de manière significative depuis l’installation.

    
réponse donnée Peter David Carter 05.05.2016 - 14:30
la source
0

J'utilise Debian 9 Stretch

Accédez aux raccourcis clavier, ajoutez une commande comme celle-ci:

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

J'avais mis Super + T en raccourci.

Maintenant, chaque fois que vous voulez ouvrir un terminal en tant que root, tapez simplement votre raccourci

J'espère que cela peut aider quelqu'un à l'avenir

    
réponse donnée Marcelo Rafael 02.03.2018 - 23:23
la source
-1

Vous pouvez lancer un shell interactif avec:

sudo -s

Pour plus d’informations faire:

man sudo

et lisez la section -s --shell .

    
réponse donnée user465589 27.10.2015 - 12:50
la source

Lire d'autres questions sur les étiquettes