Comment exécuter startx en tant que non root?

10

Récemment, je suis passé d'Ubuntu à Arch Linux. J'ai installé X11 comme système de fenêtres et KDE comme environnement de bureau. J'ai une partition séparée pour /home, /var, /et /bootet ils montent tous au démarrage. Lorsque je cours startx, le message suivant s'affiche.

xauth:timeout in locking authority file /home/hello/.Xauthority

Par accident, j'ai supprimé ce fichier. Donc, je l'ai copié /root. J'ai changé son autorité en utilisant le code ci-dessous:

# chown hello:users ~/.Xauthority

Même après cela, je ne peux pas exécuter à startxmoins d'utiliser un compte root.

Habi
la source
La copie du fichier est un risque pour la sécurité. Vous avez changé ses autorisations (propriété), pas son autorité.
ctrl-alt-delor
(Re) déplacez ~ / .Xauthority et réessayez startx. Est-ce que ça marche? Sinon, quel est le message d'erreur exact?
Adaephon

Réponses:

11

D'abord une clarification, ce Xn'est pas un gestionnaire de fenêtres , c'est un système de fenêtrage .

Maintenant, le ~/.Xauthorityfichier est simplement l'endroit où les informations d'identification pour la Xsession de l'utilisateur actuel sont stockées, c'est le fichier lu lorsque le système doit déterminer si vous avez le droit d'utiliser la Xsession en cours.

Vous ne devez jamais copier un fichier existant à partir d'un autre compte, le fichier doit toujours appartenir à l'utilisateur en cours d'exécution Xet est créé automatiquement lorsque vous démarrez une nouvelle Xsession. Donc, supprimez simplement celui que vous avez, puis exécutez à startxnouveau, tout devrait fonctionner normalement:

$ rm ~/.Xauthority; startx
terdon
la source
Tredon, même après avoir supprimé le fichier .Xauthority. Je ne peux pas faire de starx. Il continue d'afficher cette même erreur.
Habi
@Habi, vous devez vous assurer qu'aucune session X n'est en cours d'exécution, puis supprimer le fichier, puis réexécuter startx.
terdon
Maintenant, X s'exécute mais affiche un autre message Échec de l'appel à Inusertemp (répertoires temporaires pleins?). Vérifiez votre installation.
Habi
@Habi ah, c'est du progrès :). Veuillez poster une autre question à ce sujet car il s'agit d'un problème complètement différent. Dans la nouvelle question, montrez-nous la sortie de df -het assurez-vous également que ce problème persiste après le redémarrage.
terdon
Tredon, je considérerai ces progrès. :). Btw, merci.
Habi
3

Je pense qu'un problème est que les gens se connectent en tant que root, puis changent d'utilisateurs en utilisant su -l username, ce qui crée / génère un sous-processus sous root appartenant à "username". X utilisera le .Xauthorityprocessus du haut (dans ce cas root), que "nom d'utilisateur" n'a pas la permission d'utiliser.

L'erreur sera affichée:

Cannot open virtual console 1 (Permission denied).

Pour résoudre ce problème, exécutez simplement loginau lieu de sudémarrer un nouveau shell en tant que processus supérieur.

Jonathan Komar
la source
0

Je l'ai rencontré sur un Lenovo IdeaPad avec deux cartes graphiques, l'une d'Intel et l'autre de Nvidia.

L'erreur résultant de startxinclus cette ligne:

addscreen / screeninit a échoué pour le pilote 0 kde plasma

C'était la solution:

  1. Changer /etc/mkinitcpio.confen ajoutantMODULES=(nouveau)
  2. sudo mkinitcpio -p linux
  3. redémarrer
Matthias Braun
la source