Exécuter tout ce qui est lié à Gnome dans le terminal root donne une erreur

1

Une toute nouvelle installation de Debian 6.0.3 sous Gnome 2.30.2. Dans un terminal root, chaque fois que j'essaye d'ouvrir quelque chose lié à Gnome, j'obtiens cette erreur:

unable to open display ":0.0"

Parfois, cela est préfixé par:

No protocol specified

J'ai ajouté mon nom d'hôte à xhost, et mis xhost +[myhostname]dans les racines bashrc, mais cela échoue lorsque j'ouvre le terminal racine. Aidez-moi?

EDIT: La seule façon de faire en sorte que cela fonctionne consiste à désactiver complètement le contrôle d'accès, mais je sais qu'il doit y avoir une meilleure solution.

ACK_stoverflow
la source
Êtes-vous connecté à X11 lui-même en tant que root ou en tant qu’utilisateur normal?
Grawity
Bien, je ne me connecte pas à X11 manuellement, mais mon identifiant Gnome est un utilisateur normal. Est-ce que cela répond à votre question?
ACK_stoverflow
Je n'ai pas dit "manuellement"; L’écran de connexion GNOME est également X11.
Grawity

Réponses:

1

" No protocol specified" signifie généralement que l'accès à l'écran X11 vous a été refusé. Il y a plusieurs façons de faire ce que vous voulez:

  • Pointez $XAUTHORITYsur votre fichier Xauthority. Parfois, il se trouve ~/.Xauthoritydans votre répertoire personnel; avec GNOME, il s’agit d’un fichier temporaire situé au cœur de /var. Les méthodes suivantes fonctionneront dans les deux cas:

    • Il vous suffit de copier la variable d’environnement sur votre terminal racine à l’aide de echo $XAUTHORITYet export XAUTHORITY=....

    • Faites suune copie de Xauthority en ajoutant pam_xauthà sa configuration PAM.

    • Utilisez sudo -s-le et configurez-le pour avoir " XAUTHORITY" dans son env_keepoption.

    • Utilisez gksu gnome-terminalpour lancer un terminal root.

  • Ajoutez rootaux utilisateurs autorisés, en exécutant à xhost +si:localuser:rootpartir d'un terminal normal. Cela rendra Xauthority inutile.

N'ajoutez pas le nom d'hôte de l'ordinateur à xhost, car ceci n'est pas fiable (problèmes de rDNS), ne fonctionnera pas avec les connexions locales (uniquement TCP) et n'est pas sécurisé (permet à tout utilisateur de se connecter à votre écran).

Grawity
la source
Très bonne réponse! Merci de votre aide! Cela semble plutôt étrange que Debian ajoute un lanceur d’application pour un terminal racine au panneau par défaut, mais ne donne pas les privilèges de l’utilisateur root à l’affichage. Mais je suppose que ceci est une fonctionnalité de sécurité, et je viens d’abuser du terminal root. Merci encore!
ACK_stoverflow
Ce n'est pas vraiment une fonctionnalité, seulement un manque. (root peut déjà s'ajouter lui-même à Xauthority, par exemple.) Celui qui a ajouté le lanceur a probablement supposé que les administrateurs n'utiliseraient que des programmes basés sur des terminaux (ce que la plupart des administrateurs système sont).
Grawity