現在、ルートアクセスを必要とするすべてのコマンドについては、コマンドラインで入力する必要があります。
コマンドラインからコマンドを入力する代わりに、GUIでSudoが必要なときにパスワードを入力するように求められます。
これを有効にする方法はありますか?以前、Ubuntuデスクトップの1つのバージョンには、この機能がすぐに使用できました。
Ubuntuのこのバージョン(現在実行している)は、サーバーインストールからアップグレードしました。
追加します。ユーザーアカウントは既にSudoグループに追加されています。したがって、Sudo gedit
やSudo apt-get
などのコマンドを実行できますが、Ubuntu Software Centerにソフトウェアをインストールできません。
TL; DR:policykit-1
およびpolicykit-1-gnome
パッケージをインストールしてみてください。
ソフトウェアセンターを含むUbuntuのほとんどのグラフィカルシステム管理ユーティリティは、通常、Sudo
またはそのようなものがなくても実行できます。プログラムを実行するのと同じ方法でそれらを実行するだけです。
ルート権限を必要とするタスクを実行するときが来たら、彼らは polkit を使用して必要なアクションを実行します。 polkitは、管理者がrootとしてアクションを実行できるようにするための、Sudoとは別のメカニズムです。デスクトップのUbuntuシステムにインストールされますが、デフォルトではUbuntu Serverインストールの一部ではありません。
したがって、Software Centerの通常の動作では、単にsoftware-center
として呼び出すことができ、その時点で認証を求めるプロンプトは表示されませんが、ソフトウェアをインストールまたは削除するように指示すると、(グラフィカルに)認証を求められます。
あなたのシステムはGUIなしでUbuntu Serverシステムとして起動し、GUIをインストールしたように聞こえます。おそらく policykit-1 および policykit-1-gnome パッケージがインストールされていません。をインストールすると、polkitはSoftware Centerなどのユーティリティで動作する可能性が高くなります。
Sudo apt-get update
Sudo apt-get install policykit-1 policykit-1-gnome
その後、あなたはただ実行することができるはずです:
software-center
(または、インストールしたデスクトップ環境で提供されているソフトウェアセンターをグラフィカルに選択します。)
完全に機能するUbuntuデスクトップシステムが必要な場合は、「フレーバー」に関係なくメタパッケージをインストールすることをお勧めしますシステムを変換したいUbuntuの基本的に、通常のUbuntuデスクトップシステムが必要な場合は、 buntu-desktop 。
Sudo apt-get update
Sudo apt-get install ubuntu-desktop
これにより、polkitを使用しないなど、サーバーシステムに最小限のGUIをインストールすることで生じるさまざまなギャップを埋めることができます。一方、より最小限のGUIを使用したい場合は、これらのpolkitパッケージをインストールするだけです。
詳細については、 GUIでUbuntu Serverを実行する方法 を参照してください。
Sudo
グラフィカル認証。本当にコマンドをルートとして実行する必要があるが、グラフィカルな認証ダイアログが表示される場合、探しているのはgksudo
( またはgksu
)です。これは gksu パッケージ。 Sudo
のグラフィカルなフロントエンドです。
通常、gksudo
は、グラフィカルアプリケーションをルート(またはそれらを起動するユーザー以外の他のユーザー)として実行するために使用されます。ただし、これを使用して非グラフィカルコマンドを実行することもできます。ただし、Sudo
を使用してコマンドを実行できます。
端末からgksudo
を実行できますが、実行する必要はありません。から実行できます Alt+F2 (コマンドを実行)ダイアログまたはExec=
ファイルの.desktop
行(またはグラフィカルプログラムを実行する他の方法)に配置します。
Sudo ...
のようなコマンドは...
がグラフィカルアプリケーションである場合、実際にアプリケーションを実行している非ルートユーザーの構成を壊す可能性があるため、ターミナルから実行している場合でも、gksudo
を使用してグラフィカルアプリケーションをルートとして実行することを検討する必要があることに注意してください。 (幸いなことに、これは修正可能です。)Sudo gedit
は特に悪名が高いです。
グラフィカルアプリケーションのSudo
の問題とその代わりの対処方法の詳細については、以下を参照してください。
man Sudo
-H
および-i
オプションの場合。 Sudo -H ...
とSudo -i ...
はグラフィカルに認証されませんが、gksudo ...
と同様に、単純なSudo ...
の問題はありません。gksudo
は、グラフィカルプログラムと非グラフィカルプログラムの両方を実行するために正常に機能します。おそらくそれを使用する必要があります。
しかし、Sudo
の代わりにpolkitを使用し、非グラフィカルプログラムでのみ動作する代替手段は、 pkexec
です。
たとえば、pkexec touch /root/foo.txt
を実行すると、グラフィカルな認証ダイアログが表示され、認証が成功するとtouch /root/foo.txt
が実行され、foo.txt
フォルダーに( またはfreshening )/root
が作成されます。
pkexec
は、グラフィカルダイアログを作成できない場合に、ターミナルを必要とする非グラフィカルダイアログを使用します。ただし、グラフィカルシェルまたはデスクトップ環境で提供される機能を使用して実行している場合、これは起こりそうにありません。pkexec
がnon-graphicalプログラムに対してのみ機能するのはなぜですか?実際には、グラフィカルプログラムも実行しますが、polkitがそれを許可するように特別に構成されている場合のみです。これは通常は行われません。 man pkexec
(および スクリーンショットを含む上流バージョン )、 この回答 および その回答 を参照してください。興味があります。Sudo
vs. polkit(技術的な詳細、興味がある場合のみ)新しいgksu
/gksudo
は、Sudo
の代わりにpolkitを使用して作業を行います ですが、このバージョンは広く採用されていません。私は主に推奨するためにそれを持ち出します そのソースコードのREADME
ファイル (Gustavo Noronha Silvaによって書かれた) Sudo
とpolkitの重要な違い。簡単に引用するには:
PolicyKitは、ユーザーが自分自身を認証できるようにし、アプリケーションが認証および承認情報を検証できるようにする機能を提供することにより、高い特権を必要とするアプリケーションの問題を解決します。アプリケーションは、すべての特権操作が(できれば)小さいD-Busサービスによって実行されるように構造化されている必要があります。このサービスは、非特権コードによって命令されます。実行されるすべての「アクション」には、Policykitを介して処理される適切な承認が必要です。
4。なぜgksuを維持するのですか?
そのため、アプリケーションは特権ユーザーとして実行する必要がなくなり、ユーザー認証はPolicyKitの認証エージェントによって実行されるため、本質的にgksuは不要になります。しかし、この新しい構造を採用するには、アプリケーションをリファクタリングする必要があり、実際にルートとしてプログラムを実行するものが必要な場合があります。
これらの問題は、あなたがいると思う状況の根底にあります。
gksu
/gksudo
を使用できます。gksudo
は、Sudo
を使用する伝統的なものです)。便利な方法は、専用の.desktop
ファイルを作成するか、コマンドを既存のファイルに追加して、GUI(gksu)でパスワードを要求することです。次の例では、GeditランチャーにSudo特権でGeditおよびSoftware Centerを実行するコマンドを追加します。このセットアップを使用するには、gksu
をインストールする必要があります:Sudo apt-get install gksu
Gedit .desktop file in
/usr/share/applications/to
〜/ .local/share/applications`をコピーします。
cp /usr/share/applications/gedit.desktop ~/.local/share/applications/gedit.desktop
編集用に開きます(開いているgeditウィンドウにドラッグします)
次の行を探します:Actions = Window; Document;
行にコマンドの名前を追加します(これらはインターフェイスに表示される名前ではなく、ファイルの内部参照にのみ使用されます)
Actions=Window;Document;gedit;Ubuntu Software Center;
ファイルの下部に対応するセクションを追加します。
[Desktop Action gedit]
Name=Gedit (with gksu)
Exec=gksudo gedit
OnlyShowIn=Unity;
[Desktop Action Ubuntu Software Center]
Name=Ubuntu Software Center (with gksu)
Exec=gksudo /usr/bin/software-center
OnlyShowIn=Unity;
ファイルを閉じて、ランチャーにドラッグします
これで、sudo権限でgeditとSoftware Centerを実行できます。