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


8

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

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

システム全体xorg.confとをコピー/usr/lib/xorg/modulesし、少し修正しました。(ModulePathxorg.confも指定)

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

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を実行するのを手伝ってくれませんか?


Xを非rootとして実行することは可能ではないと思います。多くのハードウェアやシステムに直接アクセスする必要があります。
Dirkt

3
setuidXorgのビットを設定します:chmod +s $(which Xorg)
Serge

@dirkt最近のシステムでは可能ですが、すべてのドライバで可能ではありません。たとえば、UbuntuDebianFedoraGentooArchなどを参照してください
Gilles 'SO- stop

君たちありがとう!あなたのアドバイスは私にとってうまくいったようです!
NONAME

回答:


5

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

3

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

非ルートXでこれを行うには、グループをXorgfromからrootに変更しinput、setgitビットを設定して、ユーザーをgroupに追加しますvideo

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

(代わりに、あなたは両方にユーザーを追加することができるvideoinput、それは推奨されない。グループでのAのユーザーはinput他のユーザーの入力をスパイすることができます。EgはXのGUIは、おそらくコンソール/ TTYに入力し、rootのパスワードをスパイできます。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.