GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Activer l'accès à X Display pour l'utilisateur local ?

J'utilise GitLab CI pour exécuter des tests automatisés sur une configuration Ubuntu 14.04. Le coureur GitLab CI a créé un nouvel utilisateur, gitlab-runner , qui exécute tous les tests. Maintenant, ces tests incluent des composants d'interface graphique, j'ai donc besoin d'un affichage X - que je force même sans affichage physique via le ConnectedMonitor et CustomEDID options dans le xorg.conf .

Le problème est que lorsqu'un test est lancé par l'utilisateur gitlab-runner via DISPLAY=:0.0 ./runTestApp , j'obtiens un message "Impossible de se connecter à l'affichage :0.0" Erreur. Je peux le réparer en me connectant en tant qu'utilisateur régulier sur le poste de travail et en exécutant sudo DISPLAY=:0.0 xhost + .

Cependant :

  1. Je n'ai pas trouvé de moyen d'exécuter automatiquement xhost + avec succès au démarrage (j'ai essayé de le mettre dans /etc/rc.local )
  2. La page de manuel dit que xhost + est en fait très précaire, mais je n'ai pas trouvé quoi faire à la place. On dirait que cela pourrait avoir à voir avec un .Xauthority fichier (que mon utilisateur habituel possède, mais gitlab-runner pas)

Quelle est la meilleure façon de donner gitlab-runner accès permanent à l'affichage X ?

Réponse acceptée :

Tout d'abord, pour donner accès uniquement au runner Gitlab CI, vous devez utiliser une commande plus restreinte :

xhost +SI:localuser:gitlab-runner

Deuxièmement, /etc/rc.local s'exécute bien trop tôt pour que cette commande ait un effet, et de plus, vous devez définir $DISPLAY pour que ça marche.

Cela dépend de la façon dont votre serveur X est démarré. Si vous utilisez LightDM, je pense que vous pouvez le faire fonctionner en ajoutant la ligne suivante à /etc/lightdm/lightdm.conf :

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

Ubuntu
  1. Comment donner un accès ssh à un utilisateur dans Ubuntu

  2. Activer l'archivage des journaux d'accès bruts pour tous les comptes cPanel

  3. Activer le mot de passe simple pour l'utilisateur root sur CentOS

  4. Existe-t-il un équivalent Homebrew pour les comptes d'utilisateurs à accès limité sous Linux ?

  5. Accès refusé pour un utilisateur particulier par la configuration du compte PAM

Comment résoudre l'erreur MySQL :Accès refusé pour l'utilisateur [protégé par e-mail]

Comment activer l'accès à la console Virsh pour les invités KVM

Top 10 des extensions Google Chrome pour tout le monde

Comment activer le sudo sans mot de passe pour l'utilisateur sous Linux

Utilisateurs Webmin

Comment activer la touche Alt Gr comme Alt R pour Emacs sur Ubuntu 16.04 ?