web-dev-qa-db-ja.com

sudoなしで/ usr / bin / Xorgを実行するにはどうすればよいですか?

この質問は、Ubuntu 14.04で/usr/bin/Xorgを直接実行することに関するものです。

そして、私はXdummyが存在することを知っていますが、nvidia GPUでダミードライバーを適切に動作させることができなかったため、これはオプションではありません。

システム全体のxorg.conf/usr/lib/xorg/modulesをコピーして、少し変更しました。 (xorg.confでもModulePathと指定)

ルートとして次のコマンドを実行すると正常に動作します。

Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./16.log -config ./xorg.conf :16

しかし、それをroot以外のユーザーとして実行すると(ログファイルのアクセス許可はOK)、このエラーが発生します。

(EE) 
Fatal server error:
(EE) xf86OpenConsole: Cannot open virtual console 9 (Permission denied)
(EE) 
(EE) 
Please consult the The X.Org Foundation support 
     at http://wiki.x.org
 for help. 
(EE) Please also check the log file at "./16.log" for additional information.
(EE) 
(EE) Server terminated with error (1). Closing log file.

SudoなしでXorgを実行するのを手伝ってくれませんか?

8
noname

Xの実行を許可されているユーザーを特定するには、

dpkg-reconfigure x11-common

Rootのみ、コンソールユーザーのみ、またはanybodyの3つのオプションがあります。エントリは/etc/X11/Xwrapper.configにあります。


Debian 9およびUbuntu 16.04以降、このファイルは存在しません。 xserver-xorg-legacyをインストールすると、ファイルが再び表示され、その内容を次のように変更する必要があります。

allowed_users=console

に:

allowed_users=anybody
needs_root_rights=yes

Xの起動時に使用する仮想端末も指定する必要があります。指定しない場合、エラーが発生する可能性があります。例えば:

Xorg :8 vt8
5
mviereck

Xは、入力デバイス(マウスとキーボード)と、出力用のモニターとグラフィックスカードにアクセスする必要があります。

非ルートXでこれを実現するには、Xorgのグループをrootからinputに変更し、setgitビットを設定して、ユーザーをグループvideo

chown root:input /usr/lib/xorg/Xorg
chmod g+s /usr/lib/xorg/Xorg
adduser YOURUSERNAME video

(代わりに、ユーザーをvideoinputの両方に追加することもできますが、お勧めしません。グループinputのユーザーは、他のユーザーの入力をスパイできます。たとえば、GUI Xは、おそらくconsole/ttyに入力されたrootパスワードをスパイする可能性があります。)

3
mviereck