ターミナルをルートとして実行する方法は?


35

我々は我々が使用するルートなどのプログラムを実行したい場合はsudogksugksudoおよびなどを今私の質問はどのように我々は、ターミナルでrootユーザーとしてターミナルを実行することができないのですか?

私は使用gksudo terminalしてみましたgksu terminalが、何も起こりません。実行するsudo terminalとエラーが発生しますsudo: terminal: command not found


4
ですgnome-terminal。だから試してみてくださいsudo gnome-terminal
g_p 14

1
ターミナルプログラム自体をルートとして実行することには本当に利点がありますか?なぜターミナル内でインタラクティブなルートシェルを起動するだけではありませんsudo -iか?
スチールドライバー14

2
@Guru sudoは、このようなグラフィカルプログラムの実行には使用しないでください。場合はgksu/ gksudo、インストールされていない(またはではないかもしれません)sudo -H ...(またはsudo -i ...)グラフィカルアプリケーションを実行するために使用することができ...、ルートとしてを。
エリアケイガン14

はい。それで合っています。
g_p 14

回答:


53

UbuntuのデフォルトのターミナルエミュレータはGNOMEターミナルです。に/usr/bin/gnome-terminalあり、gnome-terminalコマンドで実行できます。

本当に欲しいもの

おそらく必要なのは、rootログインから生成されたかのように、rootとして実行されているシェルです(たとえば、ユーザーではなくrootにすべての環境変数が設定されている場合)。

それがあなたが望むものだと仮定すると、steeldriverが示唆したように、単に実行してください:

sudo -i

入力したコマンドがルートとして実行されるルートシェルがあります(コマンドの前にを付ける必要はありませんsudo)。

ただし、グラフィカルターミナルエミュレータアプリケーションをルートとして本当に実行する場合は、先に進んでください。gksu/を使用する方法gksdoと、sudoコマンドを使用する方法の2つを紹介します。

ありgksu/gksudo

あなたが持っているので、gksuのがgksuをインストールするインストールされたパッケージを、あなたが実行することができますgnome-terminalいずれかでのルートとして:

gksu gnome-terminal
gksudo gnome-terminal

gksuデフォルトではUbuntuでsudo-modeに設定されているため、これらは同等である必要があります。)

gnome-terminal制御非ルート端末なしでルートとして実行する:

事実上、すべてのデスクトップ環境は、端末を開くことなくコマンドを実行する機能を提供します(端末を閉じると、通常はコマンドが終了します)。

通常、これはAlt+で実現しF2ます。[ コマンドの実行](または同様の)というラベルの付いたテキストボックスが表示され、コマンドを入力できます。

たとえば、Unityでは次のようになります。

Unityでコマンドテキストボックスを実行する

そして、MATEのこのように(GNOME Flashback / Fallback、Xfce、LXDEも同様です):

MATEの[コマンドの実行]ダイアログボックス

注ことで、この作品gksugksudo理由は、彼らがグラフィカルな認証ダイアログを使用します。Alt+ を押しF2て実行sudo ...すると、パスワードプロンプトを操作できなくなります。

sudo

gksuパッケージがなく、インストールしたくない場合は、以下を使用できます。

sudo -H gnome-terminal

この-Hフラグは、HOME環境変数を/root自分のユーザーのホームディレクトリの代わりに設定するため重要です。非rootユーザーに属するgnome-terminal構成を壊す可能性があるため、使用しないでくださいsudo gnome-terminal。詳細については、以下を参照してください。

sudo -i gnome-terminal大丈夫です。)

制御する非ルート端末を取り除く:

あなたの場合は(1)は、グラフィカルターミナルを開く(2)のような、ラン何かsudo -H gnome-terminal、その中に新しいグラフィカルルート端末を作成するために、および(3)同様に、ルートグラフィカルターミナルが終了します...元の非ルートグラフィカルターミナルを終了しました。

これは、それを所有する端末が終了すると、ルートグラフィカル端末がSIGHUPに送信されるためです。

これを防ぐために、代わりにグラフィカルルートターミナルを起動できると思うかもしれません。

sudo -H gnome-terminal &

しかし、これはsudoパスワードを要求する必要がない場合にのみ機能します。その場合、パスワードプロンプトは表示されません。

これを回避する 1つの方法は、以下を使用することです。

sudo -v
sudo -H gnome-terminal

sudo -vこの目的のためだけに存在します。で説明したようにman sudo、「ユーザーのキャッシュされた資格情報を更新し、必要に応じてユーザーを認証します」。

注これは、デスクトップ環境のから直接実行する場合ではない仕事はまだということAlt+ F2あなたはまだのためのパスワードを入力し、端末を必要とするので、「runコマンド」ボックスsudo -v

または開始後にジョブを一時停止することにより、従来の方法と呼ばれる方法でそれを行うことができます

  1. sudo -H gnome-terminal元の非ルートグラフィカルターミナルから実行します。
  2. プロンプトに従ってパスワードを入力しますsudo。グラフィカル端末が起動します。
  3. 非ルート端末でCtrl+ Zを押してルート端末を一時停止します。ルート端末が中断されている間は、使用できません。そのインターフェースはユーザーのアクションに応答しません。
  4. で制御非ルート端末を終了しexitます。グラフィカルルートターミナルジョブは、非ルートターミナルによって自動的にサスペンド解除および否認されます。

要するに:

sudo -H gnome-terminal
^Z
exit

しかし、元の非ルート端末も使い続けたいとします。次に、を実行します。これは、グラフィカルルートターミナルのジョブ番号で、バックグラウンドでジョブを再開します。実行して検索することはできますが、おそらく実行する必要はありません。その数字は+ を押したときのように表示されていました。例えば:bg NNjobsN[N]CtrlZ

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

私も実行できますxterm。Ubuntuにはいくつの端末が存在しますか?
αғsнιη

@KasiyAたくさん。私はかつて25でカウントを停止しました。パテ、ターミネーターもよく使用されます。
リンツウィンド14

6

短い答え:

gksudo gnome-terminal
(assuming gksu is installed)

ルートとしてターミナルを開きます:

root@jacob-Satellite-L300:~#

あなたが開くようにこれを使用することができますことを説明する必要はありません任意のこのようなルートとしての端子と、Vala(gksudo vala-terminal)、Xterm(gksudo xterm)、Termit(gksudo termit)、UXTerm(gksudo uxterm)、Konsole(gksudo konsole)など。


1
これはsudo x-terminal-emulatorどうですか?
αғsнιη

@KasiyAあなたはまだ使用する必要がありgksu x-terminal-emulatorgksudo x-terminal-emulatorkdesudo x-terminal-emulator(自分のデスクトップ環境はKDEの場合)、sudo -H x-terminal-emulatorまたはsudo -i x-terminal-emulator、代わりにその問題を回避すること。同様に、sudo gedit実行するために使用すべきではないgeditルートとして。
エリアケイガン14

2

前述のように、ターミナルをルートとして実行する方法を尋ねますが、実際には通常のユーザーとしてグラフィカルターミナルアプリケーションを実行し、ルートとしてログオンしている場所でその内部でルートシェルを起動します。このようにして、グラフィカルターミナルアプリケーションにはルート権限が付与されません。前の回答では、使用するコマンドラインが明確に示されていないようですので、ここで使用します。

xtermを使用

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

'-e sudo -i'は、セッションでルートに切り替えるようxtermに指示します。色は、それがルートシェルであることを非常に明確にするためのものです。

Gnomeターミナルを使用

gnome-terminal -- sudo -i

個人的には、Gnomeキーバインドをバインドして端末を簡単に起動します

キーボード設定に移動し、ショートカットSuper + Xとコマンド「xterm -bg black -fg white -sb -sl 5000」を使用してカスタムショートカットを追加し、ショートカットSuper + Zとコマンド「xterm -bg black -fg red」を使用してルートxtermを追加します- sb -sl 5000 -e sudo -i '

過去には、フォントが小さくシンプルであるため、Gnomeターミナルよりもxtermを好む傾向がありましたが、今では高DPIの大画面を実行するようになりました。事故を避けるために、危険な結果を伴うさまざまなプロファイルを実行し始めたら(たとえば、ローカルルート、リモートクライアントのマシン、リモートクライアントルート)、端末の色分けは非常に良い考えです。


0

これを行う別の方法があり、Ubuntu 16.04 LTSでテストおよび動作します。

最初にgnome-panelをインストールします:

sudo apt install gnome-panel

次に、gksuをインストールします。

sudo apt install gksu

インストールが完了したら、次を実行します。

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

これにより、デスクトップショートカットが作成されます。名前を付けるオプションが必要です。私は私のものを「X-Term」と呼びましたが、あなたは何でも好きなように呼び出すことができます。/usr/bin/gksu「コマンド」パスに*を入力します。

新しいデスクトップショートカットを起動すると、実行するアプリケーションの入力を求められます。次を入力しますxterm

パスワードの入力を求められます。一度入力すると、作業中のルートターミナルにアクセスできます。絶対に必要な場合にのみ使用し、作業が終了したら終了することを忘れないでください。

*デフォルトの設定でUbuntuをインストールし、インストール後にファイルシステムを大幅に変更していないと仮定します。


0

Debian 9ストレッチを使用しています

キーボードショートカットに移動し、次のようなコマンドを追加します。

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

Super + Tショートカットとして置いていました。

これで、rootとしてターミナルを開くたびに、ショートカットを入力するだけです

将来誰かに役立つことを願っています


-1

以下を使用して、対話型シェルを開始できます。

sudo -s

詳細については:

man sudo

-s --shellセクションを読んでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.