解決策
Waylandでは、権限を高めた(sudo -H、gksu ...)GUIアプリケーションプログラムを実行するのが難しいことがよくあります。コマンドラインツールを使用してこのようなタスクを実行することをお勧めします。
ただし、GUIツールを使用している場合は、回避策があり、うまく機能し、昇格したアクセス許可が必要です。(このような2つの標準ツールを使用しsynapticます。SynapticPackage Manager とパーティショニングツールGpartedです。MakeUSB gpartedを使用してUSBブートドライブも作成しますが、mkusbグラフィックなしで昇格されたアクセス許可が必要な部分を実行できます。)
xhost そして sudo -H
Waylandでログインしているユーザー以外のユーザーが所有するグラフィカルアプリケーションプログラムを許可する回避策があります。
xhost +si:localuser:root
gksuまたgksudo、標準のUbuntuにバンドルされておらず、ここでは動作しませんが、Xorgでは動作します。
代わりに使用できます
sudo -H
後でログインしているユーザー以外のユーザーが所有するグラフィカルアプリケーションプログラムを防止することをお勧めします。
xhost -si:localuser:root
gvfs adminバックエンド
Ubuntu 17.10(gvfs> = 1.29.4)では、gvfs adminバックエンドを使用できます。完全なパスが必要なことに注意してください。
gedit admin:///path/to/file
理論的には、(polkitを使用しています)GVFS管理バックエンドの方法が優れていると(より安全xhostとxudo -H関係なく、あなたが使用してUIの、)。
アプリケーション全体をルートとして実行することはありません。特権の昇格は、厳密に必要な場合にのみ発生します。次のリンクとそこからのリンクを参照してください。
nautilus-admin
またnautilus-admin、昇格されたアクセス許可でファイル操作に使用geditしたり、昇格されたアクセス許可で使用することもできます。これは、次のAskUbuntuの回答で説明されています。
関数を介したWaylandデスクトップへのルートの一時アクセス gks
避けてくださいsudo GUI-program。これにより、システムが通常のユーザーIDの構成ファイルをの構成で上書きし、通常のユーザーID rootに合わせrootてロックアウトするように所有権と許可を設定する可能性があります。GUIアプリケーションを実行する必要があります。GUIアプリケーションsudo -Hは、構成ファイルをrootホームディレクトリに書き込みます/root。例:
sudo -H gedit myfile.txt
しかし、あなたが忘れるリスクがあります-H。代わりに、たとえば、関数を作成できますgks
gks () { xhost +si:localuser:root; sudo -H "$@"; xhost -si:localuser:root; }
~/.bashrcエイリアスの近くに保存します。その後、実行することができます
gks gedit myfile.txt
gksudo以前の使用方法と同様の方法で。
テスト中
あなたはどのように確認することができsudo、sudo -Hそしてgks次のコマンドを使用して作業
sudodus@xenial32 ~ $ sudo bash -c "echo ~"
/home/sudodus
sudodus@xenial32 ~ $ sudo -H bash -c "echo ~"
/root
sudodus@xenial32 ~ $ gks () { xhost +si:localuser:root; sudo -H "$@"; xhost -si:localuser:root; }
sudodus@xenial32 ~ $ gks bash -c "echo ~"
localuser:root being added to access control list
/root
localuser:root being removed from access control list
sudodus@xenial32 ~ $
そしてもちろん
gks gedit myfile.txt
前のセクションの例に従って。
Alt-F2およびGnome Shellメニューを介して機能する方法
に単純な1行関数を追加する代わりに、~/.bashrcbashなしでも機能するシステムを作成できます。使いやすいかもしれませんが、設定はより複雑です。1行機能はこのより複雑なシステムの使用を妨げるため、代替の1つのみをインストールする必要があることに注意してください。
3つのファイル
シェルスクリプトgks:
#!/bin/bash
xhost +si:localuser:root
if [ $# -eq 0 ]
then
xterm -T "gks console - enter command and password" \
-fa default -fs 14 -geometry 60x4 \
-e bash -c 'echo "gks lets you run command lines with GUI programs
with temporary elevated permissions in Wayland."; \
read -p "Enter command: " cmd; \
cmdfile=$(mktemp); echo "$cmd" > "$cmdfile"; \
sudo -H bash "$cmdfile"; rm "$cmdfile"'
else
xterm -T "gks console - enter password" -fa default -fs 14 -geometry 60x4 -e sudo -H "$@"
fi
xhost -si:localuser:root;
デスクトップファイルgks.desktop:
[Desktop Entry]
Version=1.0
Categories=Application;System;
Type=Application
Name=gks
Description=Run program with temporary elevated permissions in Wayland
Comment=Run program with temporary elevated permissions in Wayland
Exec=gks %f
Icon=/usr/share/icons/gks.svg
Terminal=false
StartupNotify=false
GenericName[en_US.UTF-8]=Run program with temporary elevated permissions in Wayland
アイコンファイルgks.svgは次のようになります。

このリンクからアイコンファイルまたは3つのファイルすべてを含むtarballをダウンロードできます。
wiki.ubuntu.com/Wayland/gks
[抽出またはコピーして貼り付け]ファイルを次の場所にコピーします。
sudo cp gks /usr/bin
sudo cp gks.desktop /usr/share/applications/
sudo cp gks.svg /usr/share/icons
ログアウト/ログインまたは再起動すると、正常に機能するデスクトップアイコンが表示されます。関数を使用した単純なソリューションのように、ターミナルウィンドウから動作します。
Alt F2 ボックス:

Gnome Shellメニュー:

gksコンソールとgparted:

カスタムスクリプトとデスクトップファイル
昇格されたアクセス許可が必要なGUIアプリケーションが数個しかない場合は、それらのカスタムスクリプトとデスクトップファイルを作成し、コマンド(アプリケーション名)の入力を避けることができます。パスワードを入力するだけです。これは、以前のバージョンのUbuntuと比較して難しくありません(とにかくパスワードを入力する必要があります)。
xlogoプログラムパッケージに付属するシンプルなGUIプログラムの例x11-apps:
シェルスクリプトgkslogo(と比較して簡略化gks)、
#!/bin/bash
xhost +si:localuser:root
xterm -T "gks console - enter password" -fa default -fs 14 -geometry 60x4 -e sudo -H xlogo
xhost -si:localuser:root;
デスクトップファイルgkslogo.desktop:
[Desktop Entry]
Version=1.0
Categories=Application;System;
Type=Application
Name=gkslogo
Description=Run program with temporary elevated permissions in Wayland
Comment=Run program with temporary elevated permissions in Wayland
Exec=gkslogo
Icon=/usr/share/icons/gks.svg
Terminal=false
StartupNotify=false
GenericName[en_US.UTF-8]=Run program with temporary elevated permissions in Wayland
私は怠け者で、同じアイコンファイルを使用しました gks.svg
[コピーして貼り付け]ファイルを次の場所にコピーします。
sudo cp gkslogo /usr/bin
sudo cp gkslogo.desktop /usr/share/applications/
gks [logo]コンソールおよびxlogo:

gksudoWaylandセッションでは動作しません。Xorgセッションに切り替えて試してください。