GNU/Linux >> Znalost Linux >  >> Ubuntu

Povolit přístup X Display pro místního uživatele?

Používám GitLab CI ke spouštění automatických testů v nastavení Ubuntu 14.04. GitLab CI runner vytvořil nového uživatele, gitlab-runner , který provede všechny testy. Nyní tyto testy zahrnují komponenty grafického uživatelského rozhraní, takže potřebuji displej X – který vynutím i bez fyzického displeje prostřednictvím ConnectedMonitor a CustomEDID možnosti v xorg.conf .

Problém je v tom, že když test spustí uživatel gitlab-runner přes DISPLAY=:0.0 ./runTestApp , zobrazí se mi „Nelze se připojit k zobrazení :0.0“ chyba. Mohu to opravit tak, že se přihlásím jako běžný uživatel na pracovní stanici a spustím sudo DISPLAY=:0.0 xhost + .

Nicméně:

  1. Nenašel jsem způsob, jak úspěšně automaticky spustit xhost + při spuštění (zkusili jste to vložit do /etc/rc.local )
  2. Manuál říká, že xhost + je ve skutečnosti velmi nejistá, ale nezjistil jsem, co dělat místo toho. Zdá se, že to může souviset s .Xauthority soubor (který má můj běžný uživatel, ale gitlab-runner ne)

Jaký je nejlepší způsob, jak dát gitlab-runner trvalý přístup k displeji X?

Přijatá odpověď:

Za prvé, chcete-li poskytnout přístup pouze běhu Gitlab CI runner, musíte použít omezenější příkaz:

xhost +SI:localuser:gitlab-runner

Za druhé, /etc/rc.local běží příliš brzy na to, aby se tento příkaz projevil, a dále musíte nastavit $DISPLAY aby to fungovalo.

Záleží na tom, jak je váš X server spuštěn. Pokud používáte LightDM, myslím, že to můžete zprovoznit přidáním následujícího řádku do /etc/lightdm/lightdm.conf :

greeter-setup-script=xhost +SI:localuser:gitlab-runner

Ubuntu
  1. Řízení přístupu k rootless Podman pro uživatele

  2. Poskytnout Virtualboxu přístup pouze konkrétním uživatelům?

  3. Jak povolit „jinému“ uživateli přihlášení pomocí služby Active Directory?

  1. Povolit prodejci přístup k CSF

  2. Jak poskytnout ssh přístup uživateli v Ubuntu

  3. Přístup odepřen konkrétnímu uživateli konfigurací účtu PAM

  1. Jak omezit přístup SSH pro uživatele pomocí LShell (Limited Shell)

  2. Povolit archivaci protokolů raw access pro všechny účty cPanel

  3. Povolit jednoduché heslo pro uživatele root na CentOS