Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/10/2008, à 03:42

Fondateur0426

Script Bash, "downgrader" utilisateur pour "display" actuel

Bonjour à tous,

Premièrement, j'aimerais remercier toute la communauté francophone (et anglophone) d'Ubuntu. J'y ai trouvé au cours des années plusieurs réponses à mes questions, même si je suis un utilisateur assez chevronné de GNU/Linux depuis 1 lustre (littéralement). Mais là, je bloque.

J'ai un problème de script Bash.

Je vais vous expliquer le problème : j'ai un ordinateur portable avec Compiz d'activé. J'aimerais que lorsque je débranche le courant secteur, Compiz soit remplacé par Metacity de GNOME (ou Kwin de KDE). Le remplacement est effectué par l'excellent script "compiz-switch". Et vice-versa.

Lorsque je branche ou débranche le secteur, le script /etc/acpi/power.sh est roulé. Cela fait rouler, selon si le portable est sur le secteur ou la batterie, les scripts situé dans /etc/acpi/ac.d/*.sh ou /etc/acpi/battery.d/*.sh.

J'ai mis des scripts dans ces répertoires contenant la commande "/usr/bin/compiz-switch".

Si j'exécute ces scripts manuellement, en tant qu'utilisateur "guillaume", c'est-à-dire moi, ça marche. Or, lorsque le script "power.sh" est exécuté (tout comme les scripts que lui-même exécute, comme le mien), c'est en tant que root.

Or, root n'a pas accès à mon "display". Si j'exécute manuellement mon en tant que root, ça ne marche pas non plus.

Devrais-je exporter mon display dans le script? Apparamment ça ne fonctionne pas, même si je fais un "xhost +" avant de lancer mon script.

Est-ce qu'il serait possible faire en sorte que mon script exécute en root s'exécute en tant que "guillaume", avec son environnement, son environnement graphique, etc. ?

Je peux être plus clair si nécessaire, mais le problème c'est qu'un script exécuté en root, même avec un environnement graphique, ne peut accéder à ces ressources graphiques.

Merci de votre aide!

Guillaume Gervais,
Montréal, Québec.

Hors ligne

#2 Le 08/10/2008, à 11:27

MacLane45

Re : Script Bash, "downgrader" utilisateur pour "display" actuel

Salut Fondateur0426

Est-ce qu'il serait possible faire en sorte que mon script exécute en root s'exécute en tant que "guillaume", avec son environnement, son environnement graphique, etc. ?

Oui bien sur, je suppose que ton script est lancer par root, à ce moment la :

su - guillaume

devrait bien se passer, cependant l'environnement graphique ne sera pas chargé. Tu peux néanmoins repérer les processus du user guillaume avec les commandes :

ps -ef | grep guillaume | grep -v grep (en tant que root)
ps -ef | grep $USER | grep -v grep (en tant que guillaume)

Bon courage
@+

Hors ligne