GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come eseguire il terminale come root?

Quando vogliamo eseguire un programma come root utilizziamo sudo , gksu , gksudo e così via. Ora la mia domanda è come possiamo eseguire un terminale come utente root in Terminale?

Ho provato a usare gksudo terminal e gksu terminal ma non succede niente. ed eseguendo sudo terminal Ottengo l'errore sudo: terminal: command not found .

Migliore risposta

L'emulatore di terminale predefinito su Ubuntu è il terminale GNOME. Si trova in /usr/bin/gnome-terminal e può essere eseguito con il gnome-terminal comando.

Quello che vuoi veramente

Quello che probabilmente vuoi è una shell in esecuzione come root, come se fosse prodotta da un login di root (ad esempio, con tutte le variabili d'ambiente impostate per root invece che per il tuo utente).

Supponendo che sia quello che vuoi, come ha suggerito steeldriver, esegui:

sudo -i

Avrai una shell di root in cui i comandi immessi verranno eseguiti come root (senza doverli precedere con sudo ).

Ma se vuoi davvero eseguire l'applicazione dell'emulatore di terminale grafico come root, continua a leggere. Presento due modi:con gksu /gksdo e con il sudo comando.

Con gksu /gksudo

Dal momento che hai il gksu installato, puoi eseguire gnome-terminal come root con uno di:

gksu gnome-terminal
gksudo gnome-terminal

(Dato che gksu è impostato su sudo-mode in Ubuntu per impostazione predefinita, dovrebbero essere equivalenti.)

Eseguire gnome-terminal come root senza un terminale non root di controllo:

Praticamente ogni ambiente desktop fornisce una funzione per eseguire un comando senza dover aprire un terminale (che, se chiuso, di solito causerebbe la chiusura del comando).

Questo di solito si ottiene con Alt +F2 . Una casella di testo con l'etichetta Esegui comando (o simile) apparirà e potrai inserire il tuo comando.

Ad esempio, ha questo aspetto in Unity:

E così in MATE (GNOME Flashback/Fallback, Xfce, LXDE sono simili):

Nota che funziona con gksu e gksudo perché usano una finestra di autenticazione grafica. Se dovessi premere Alt +F2 ed esegui sudo ... , non sarai quindi in grado di interagire con la richiesta della password.

Con sudo

Se non hai il pacchetto gksu e non vuoi installarlo, puoi usare:

sudo -H gnome-terminal

Il -H flag è importante perché imposta la HOME variabile di ambiente su /root invece della directory home del tuo utente. Non dovresti non usa sudo gnome-terminal in quanto può interrompere la configurazione gnome-terminale appartenente all'utente non root. Per ulteriori informazioni su questo, vedere:

  • RootSudo sul wiki della guida di Ubuntu
  • Perché gli utenti non dovrebbero mai utilizzare sudo normale per avviare applicazioni grafiche?

(sudo -i gnome-terminal va bene anche.)

Sbarazzarsi del terminale di controllo non root:

Se (1) apri un terminale grafico, (2) esegui qualcosa come sudo -H gnome-terminal in esso, per creare un nuovo terminale grafico radice e (3) esci dal terminale grafico originale non root …quindi si chiude anche il terminale grafico root.

Correlati:Sudo non chiede più la password?

Questo perché il terminale grafico di root viene inviato SIGHUP quando si esce dal terminale che lo possiede.

Per evitare ciò, potresti invece pensare di avviare il terminale di root grafico con:

sudo -H gnome-terminal &

Ma questo funzionerà solo se sudo non deve richiedere una password. In tal caso, non vedrai la richiesta della password.

Solo andata per ovviare a questo è usare:

sudo -v
sudo -H gnome-terminal

sudo -v esiste proprio per questo scopo. Come spiegato in man sudo , "aggiorna[i] le credenziali memorizzate nella cache dell'utente, autenticando l'utente se necessario".

Oppure puoi farlo in quello che potrebbe essere chiamato il modo tradizionale, sospendendo il lavoro dopo l'inizio:

  1. Esegui sudo -H gnome-terminal dal terminale grafico originale non root.
  2. Inserisci la tua password come richiesto da sudo . Verrà avviato il terminale grafico.
  3. Ancora nel terminale non root , premi Ctrl +Z per sospendere il terminale di root. Mentre il terminale di root è sospeso, non puoi usarlo; la sua interfaccia non risponderà alle tue azioni.
  4. Chiudi il terminale non root di controllo con exit . Il lavoro del terminale di root grafico sarà sia sospeso che disconosciuto dal terminale non root, automaticamente.

In breve:

sudo -H gnome-terminal
^Z
exit

Ma supponiamo che tu voglia continuare a usare anche il terminale originale, non root. Quindi potresti eseguire bg N , dove N è il numero del lavoro del terminale grafico principale, per riprendere il lavoro in background. Puoi eseguire jobs per trovare N ma probabilmente non sarà necessario:quel numero è stato mostrato come [N] quando hai premuto Ctrl +Z . Ad esempio:

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

Ubuntu
  1. Come eseguire un programma specifico come root senza una richiesta di password?

  2. Come funzionano gli interni di Sudo?

  3. Come eseguire retroattivamente uno script come root?

  4. Come eseguire Wireshark su Ubuntu 17.10?

  5. Come eseguire uno script??

Come installare LAMP su Manjaro 20

Come installare Magento su Debian 11

Come installare phpIPAM su Ubuntu 20.04 LTS

Come eseguire Dolphin come root?

Come eseguire un alias con Sudo in Linux

Come eseguire sudo comandi senza password