web-dev-qa-db-ja.com

pkexecに基づいて新しい「gksu」コマンドを作成するにはどうすればよいですか?

私が「gksu gedit」をググるとき、トップエントリの1つ( ルートとしてgeditとnautilusを実行する方法 )は、gksuの使用が嫌われることを助言します。

gksuは2009年以降更新されておらず、推奨されなくなりました。実際、Ubuntuにはデフォルトでgksuが同梱されておらず(一部のアプリはまだそれに依存しているため、多くの人にインストールされている可能性があります)、いつかは完全に削除されることもあります。

AskUbuntuへのリンク( なぜデフォルトでgksuがインストールされなくなったのですか? )は、代わりにpkexecを使用することを提案していますが、これを行うための明確で簡潔な手順は提供していません。

gsugeditの両方をサポートするnautilusという新しいラッパーシェルスクリプト内でpkexecを使用するにはどうすればよいですか?

私の「マッスルメモリ」は常にgsuと入力するため、gksuと入力する必要がないので、pkexecというラッパースクリプトが最も適切だと思います。 。

さらに、これらの厄介なgtk警告メッセージを表示しないようにしてください。また、エディターやファイルマネージャーが終了するのを待つのではなく、ターミナルプロンプトをすぐに元に戻したいです。

AU Duplicates:私は多くのQ&Aを検索しましたが、gsuラッパースクリプトの完全なソリューションを求めている(またはその方法を提供している)誰もいませんpkexecを呼び出して、必要なすべてのポリシーキットをインストールし、厄介なgtk警告を取り除き、ターミナルプロンプトをすぐに戻します...すべて1つの答えで。

1

pkexecgeditおよびnautilusと一緒に使用する前に、それらをサポートするためにpolkitルールをコピーする必要があります。これはUbuntu 17.04で自動的に行われますが、当面はそれらをwgetする必要があります。

ノーチラスポリシーキット

wget https://raw.githubusercontent.com/hotice/webupd8/master/org.gnome.nautilus.policy -O /tmp/org.gnome.nautilus.policy
Sudo cp /tmp/org.gnome.nautilus.policy /usr/share/polkit-1/actions/

Geditポリシーキット

wget https://raw.githubusercontent.com/hotice/webupd8/master/org.gnome.gedit.policy -O /tmp/org.gnome.gedit.policy
Sudo cp /tmp/org.gnome.gedit.policy /usr/share/polkit-1/actions/

「gksu」を置き換える「gsu」bashスクリプト

Bashスクリプトの作成は、慣れ親しんだpxexecという用語を使用してgsuを呼び出す2つの方法のうちの1つです。このファイルをパスの1つに作成します。

#!/bin/bash

# Usage: gsu gedit file1 file2...
#  -OR-  gsu natuilus /dirname

# & is used to spawn process and get Prompt back ASAP
# > /dev/null is used to send gtk warnings into dumpster

COMMAND=$1 # extract gedit or nautilus

pkexec "$COMMAND" "${@:2}" &> /dev/null&

ファイルを保存し、chmod +x gsuを使用して実行可能ファイルとしてマークします

gksuと入力してgrub構成を編集する代わりに、次のコマンドを使用できます。

gsu gedit /etc/default/grub

「gksu」を「pkexec」のエイリアスとして「gksu」に置き換え

エイリアスの作成は、慣れ親しんだpxexecという用語を使用してgsuを呼び出す2番目のオプションです。ファイル~/.bashrcを開き、aliasを検索します。これが表示されます:

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

最後の行の後にこれを追加します:

alias gsu='pkexec'

ファイルを保存して終了します。

2