web-dev-qa-db-ja.com

起動時のxhost設定

/etc/gdm/Init/Defaultを編集してFedoraのブート時にxhostを設定し、たとえば以下を追加できます。

/usr/bin/xhost +local:

Ubuntuでも同様のことができますか?私はそれが欲しい

/usr/bin/xhost +local:

システムがログインプロンプトにあるときにコマンドが実行されます。

8
yurtesen

xhostコマンドを実行するにはアクティブなXサーバーが必要です。たとえば、lightdmがロードされたときなど、ログイン画面で実行できます。 /etc/lightdm/lightdm.confを編集して次の行を追加することで有効にできます:

display-setup-script=/home/user/bin/xhost.sh

/etc/lightdm/lightdm.confファイルの例:

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
display-setup-script=/home/user/bin/xhost.sh

/home/user/bin/xhost.shファイルの例:

#!/bin/bash
xhost +

Ubuntu 12.04.1 LTSで動作し、Xを必要とし、Tomcat 6で実行されたJavaアプリケーションを有効にする必要がありました。

11
George Litos

これは私のために働いた:

編集~/.xinitrc

export DISPLAY=":0.0"
xhost +
openbox

注:特定のセットアップでは、openboxのみを実行しています。通常、そのファイルは空であるか、Ubuntuにありません。私の推測では、「openbox」行を削除しても機能すると思いますが、今はテストする方法がありません。動作しない場合は、ウィンドウマネージャーコマンドの最後の行を置き換えます。

2
lepe

Ubuntu 17.10でも同じ問題が発生しました。システムが適切に構成されていない可能性があります。とにかく、私の場合、私は追加しました

xhost + SI:localuser:root > /dev/null

~/.bashrcファイルの下部にあり、機能しました。これがセキュリティ上のリスクかどうかはわかりません。他の誰かが同じ状況にある場合に備えて、共有されたXサーバーユーザーのリストにrootを追加しても大丈夫だと信じています。

ここで提案されています http://ubuntuhandbook.org/index.php/2017/10/ubuntu-17-10-tip-graphical-apps-doesnt-launch-via-root-Sudo-gksu/ =

最初にターミナルで直接テストできます。

$ xhost + SI:localuser:root
$ xhost -

2行目では、リスト内のユーザーだけがXサーバーにアクセスできるようにします。次に、ファイルを右クリックするか、直接実行した後、「管理者として編集」を試してください。

$ pkexec gedit

これが機能しない場合、〜/ .bashrcでコマンドを永続的にすることは無意味です。

より正確には、最初に実行しました

$ xhost

xサーバーにアクセスしたユーザーを確認します。形式はSI:localuser:dominicで、dominicは私のログイン名であることがわかりました。そこで、SI:localuser:rootと同じ形式を使用してrootユーザーを追加しました。

1
Dominic108

以下に、@ GeorgeLitosの回答のバリエーションとこれらの変更を示します。

  • /etc/lightdm/lightdm.confを直接変更しないでください。これはシステム所有のファイルであり、システムのアップグレードによって上書きされる可能性があります。代わりに、拡張ディレクトリ/etc/lightdm/lightdm.conf.d/を使用してください。これは、他の設定をそこに複製する必要がないことも意味します。
  • 別のシェルスクリプトは必要ありません。コマンドは構成ファイルに直接配置できます。

次の内容のファイルを(ユーザールートとして)/etc/lightdm/lightdm.conf.d/xhost.conf作成するだけです。

[SeatDefaults]
display-setup-script=xhost +

これはUbuntu 16.04.5 LTSで機能します。

0
Ingo Karkat

Ubuntu 14.04では~/.xinitrcは機能しませんでしたが、~/.profileの以下は機能しました。 GUI/terminal/SSH/etc ...でログインするたびにスクリプトが実行されるので、stdoutをリダイレクトして出力を無音にします。

xhost +local: > /dev/null

0
Lucas