2つのユーザーアカウントを定義しました。
Sudo
の権利)=>それを呼び出すことができますadminuser
。normaluser
normaluser
。normaluser
セッションを開き、管理者権限でアプリケーションを実行したい場合、
端末を開きます Ctrl+Alt+T そして:
su adminuser
Sudo anyapplication ...
normaluser
セッションを終了することなく正常に動作します(adminuser
セッションを開く必要はありません)。
しかし、アプリケーションをGUI(グラフィックユーザーインターフェイス)で実行する必要がある場合はどうすればよいですか?
それについて私は:
su adminuser
gksu anyapplication ...
しかし、私は得る
** (gksu:9122): WARNING **: the connexion is closed
No protocol specified
No protocol specified
(gksu:9122): Gtk-WARNING **: cannot open display: :0.0
これはUbuntu 16.04で動作します(編集:18.04 LTSでも動作します):
行を入れます:
session optional pam_xauth.so
どこかに:
/etc/pam.d/su
および/または
/etc/pam.d/Sudo
そして、「su-」または「Sudo su-」を実行すると、グラフィカルアプリをルートとして使用できます。
おそらく動作する1つの方法は、最初にadminユーザーに切り替えるときに「su」ではなく「sux」を使用することです。 suxは、スプーフィングされたユーザーからxアプリケーションを実行する問題を修正します。これは標準のリポジトリにあり、コマンドラインでSudo apt-get install sux
を入力することでインストールできます。
次に、「su」の代わりに「sux」を使用するだけで、期待どおりに機能するはずです。
アプリケーションの例を再利用してくださいxclock
:
sux admin
gksu xclock
Kdesudoとgksuに代わる代替手段があります-policykit-1
パッケージからのpkexec
は、多くのパッケージで必要です。
の代わりに
su admin gksu anyapplication ...
gksu
コマンド自体を使用してすべてを行うgksu -u admin anyapplication
を試すことをお勧めします。また、コマンドに記載されているユーザーのパスワードを入力する必要があることに注意してください。つまり、この場合はadminのパスワードを入力する必要があります。