Как я могу запустить / usr / bin / Xorg без sudo?

8

Этот вопрос касается выполнения /usr/bin/Xorgнепосредственно в Ubuntu 14.04.

И я знаю, что существует Xdummy, но я не мог заставить фиктивный драйвер нормально работать с графическим процессором nvidia, так что это не вариант.

Я скопировал общесистемную xorg.confи /usr/lib/xorg/modulesнемного изменил их. (Указано ModulePathпо моему xorg.confтоже)

Выполнение следующей команды от имени root работает нормально:

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

Но если я делаю это как пользователь без полномочий root (разрешение на файл журнала в порядке), эта ошибка происходит:

(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.

Не могли бы вы помочь мне запустить Xorg без sudo?

без имени
источник
Я не думаю, что возможно запустить X без полномочий root; ему нужен прямой доступ ко многим аппаратным и системным ресурсам.
dirkt
3
установить setuidбит на Xorg:chmod +s $(which Xorg)
Серж
@dirkt Это возможно в последних системах, но не со всеми драйверами. См., Например, Ubuntu , Debian , Fedora , Gentoo , Arch ,…
Жиль: «Хватит быть злым»
Спасибо вам, ребята! Кажется, ваш совет сработал для меня!
noname

Ответы:

5

Чтобы определить, кому разрешено запускать X, настройте его

dpkg-reconfigure x11-common

Есть три варианта: только root, только консольные пользователи или кто угодно. Запись находится в /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
mviereck
источник
3

X нужен доступ к устройствам ввода (мышь и клавиатура), а также к монитору и видеокарте для вывода.

Чтобы добиться этого для не-root X, вы можете изменить группу Xorgс rootна input, установить бит setgit и добавить своего пользователя в группу video:

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

(Вместо этого вы можете добавить своего пользователя к обоим videoи input, но это не рекомендуется. Пользователь в группе inputможет шпионить за входами других пользователей. Например, графический пользовательский интерфейс в X может, вероятно, шпионить за паролем root, введенным в console / tty.)

mviereck
источник