TL; DR:policykit-1
およびpolicykit-1-gnome
パッケージをインストールしてみてください。
おそらくpolkit(別名PolicyKit)が必要です。
ソフトウェアセンターを含む、Ubuntuのほとんどのグラフィカルシステム管理ユーティリティは、通常、sudo
それなしで、または非常によく実行できます。プログラムを実行するのと同じ方法で実行します。
root権限を必要とするタスクを実行するとき、彼らはpolkitを使用して必要なアクションを実行します。polkitはsudoとは別のメカニズムであり、管理者がrootとしてアクションを実行できるようにします。デスクトップのUbuntuシステムにインストールされますが、デフォルトではUbuntuサーバーのインストールの一部ではありません。
したがって、Software Centerの通常の動作は、として単に呼び出すことができるということです。software-center
そのとき、認証を求めるプロンプトは表示されませんが、ソフトウェアをインストールまたは削除するように指示すると、認証を(グラフィックで)表示します。
システムがGUIのないUbuntu Serverシステムとして起動し、GUIをインストールしたような説明から聞こえます。おそらく、policykit-1およびpolicykit-1-gnomeパッケージがインストールされていません。をインストールすると、polkitはソフトウェアセンターやその他のユーティリティで動作するようになります。
sudo apt-get update
sudo apt-get install policykit-1 policykit-1-gnome
それからあなたはただ走ることができるはずです:
software-center
(または、インストールしたデスクトップ環境に応じて、ソフトウェアセンターをグラフィカルに選択します。)
完全に機能するUbuntuデスクトップシステムが必要な場合は、システムに変えたいUbuntuの「フレーバー」のメタパッケージをインストールすることをお勧めします。基本的に、通常のUbuntuデスクトップシステムが必要な場合は、 ubuntu-desktopをインストールします。
sudo apt-get update
sudo apt-get install ubuntu-desktop
これにより、サーバーシステムに最小限のGUIをインストールすることで生じる、ポルキットがないなどのさまざまなギャップが埋められます。一方、より最小限のGUIが必要な場合は、それらのpolkitパッケージをインストールするだけで済みます。
詳細については、GUIを使用してUbuntuサーバーをどのように実行しますか?を参照してください。
sudo
グラフィカル認証。
本当にrootとしてコマンドを実行する必要があるが、グラフィカル認証ダイアログが表示される場合、探しているのはgksudo
(またはgksu
)です。これは、gksuパッケージによって提供されます。これはのグラフィカルなフロントエンドですsudo
。
通常、gksudo
グラフィカルアプリケーションをroot(またはそれらを起動するユーザー以外の他のユーザー)として実行するために使用されます。ただし、これを使用して、非グラフィカルコマンドを実行することもできますsudo
。ただし、コマンドをで実行できる場合に限ります。
gksudo
ターミナルから実行できますが、そうする必要はありません。Alt+ F2(コマンドの実行)ダイアログから実行するかExec=
、.desktop
ファイルの行(またはグラフィカルプログラムを実行する他の方法)に配置できます。
gksudo
グラフィカルアプリケーションのsudo ...
場所などのコマンド...
は、実際にそれらを実行している非rootユーザーのアプリケーションごとの構成を壊す可能性があるため、ターミナルから実行している場合でも、を使用してグラフィカルアプリケーションをrootとして実行することを検討する必要があることに注意してください。(幸いにもこれは修正可能です。) sudo gedit
特に悪名高いです。
sudo
グラフィカルアプリケーションの問題の詳細と代わりに何をすべきかについては、以下を参照してください。
非グラフィカルコマンド用のpolkitベースのグラフィカルな方法もあります。
gksudo
グラフィカルプログラムと非グラフィカルプログラムの両方を実行する場合に問題なく機能します。あなたはおそらくそれを使うべきです。
ただし、非グラフィカルプログラムの代わりにpolkitを使用sudo
する以外の方法は、ですpkexec
。
たとえば、を実行pkexec touch /root/foo.txt
すると、グラフィカル認証ダイアログが表示され、認証が成功すると、touch /root/foo.txt
が実行され、フォルダー内に作成(または更新)さfoo.txt
れ/root
ます。
pkexec
グラフィカルダイアログを作成できない場合は、ターミナルを必要とする非グラフィカルダイアログを使用します。ただし、グラフィカルシェルまたはデスクトップ環境によって提供される機能を介して実行している場合、これは起こりそうにありません。
- なぜ非グラフィカルプログラムで
pkexec
のみ機能するのですか?実際には、グラフィカルなプログラムも実行しますが、polkitがそれを許可するように特別に構成されている場合に限り、これは通常行われません。興味があれば、詳細(スクリーンショット付きのアップストリームバージョンと、この回答とその回答)を参照してください。man pkexec
sudo
対polkit (興味がある場合のみ、いくつかの技術的な詳細)
新しいgksu
/ gksudo
は、代わりにpolkitを使用sudo
して作業を行いますが、このバージョンは広く採用されていません。とpolkitの重要な違いを説明するソースコード(Gustavo Noronha Silvaによって書かれた)でファイルを推奨するREADME
ために主に取り上げますsudo
。それから簡単に引用すると:
PolicyKitは、ユーザーが自分自身を認証できる機能を提供し、アプリケーションが認証と承認の情報を確認できるようにする機能を提供することで、より高い特権を必要とするアプリケーションの問題を解決します。アプリケーションは、すべての特権操作が(好ましくは)小さいD-Busサービスによって行われるように構造化されている必要があります。このサービスは、非特権コードによって命令されます。実行されるすべての「アクション」には、Policykitを通じて処理される適切な承認が必要です。
4.なぜgksuを維持するのですか?
そのため、アプリケーションは特権ユーザーとして実行する必要がなくなり、ユーザー認証はPolicyKitのAuth Agentによって行われるため、これにより本質的にgksuが不要になります。ただし、この新しい構造を採用するには、アプリケーションをリファクタリングする必要があり、必要なものが実際にプログラムをルートとして実行するものである場合があります。
これらの問題は、あなたがいると私が信じている状況の根底にあります。
- Software Centerは特権の昇格にpolkitを使用するように設計されているため、特定のアクションのみをrootとして実行する必要があります。これには、システムに欠落していた(または壊れていた)polkitが必要です。
- polkitを使用するように設計されているため、ルートとしてソフトウェアセンターを起動するための既成のランチャーはありません。polkitは、ほとんどの場合、rootとしてグラフィカル管理ツールを実行する必要をなくします。
- しかし、実際にはグラフィカルプログラムをrootとして実行する必要がある場合もあります。その場合は、
gksu
/ を使用できますgksudo
。
(...最終的に舞台裏でpolkitを使用する可能性がありgksudo
ますが、現在Ubuntuで使用されているのはsudo
)です。