script au démarrage / lanceur

Avell Diroll avelldiroll at gmail.com
Mar 2 Mar 03:36:46 GMT 2010


Thomas De Contes wrote:
> Le 1 mars 10 à 01:32, Avell Diroll a écrit :
>> Thomas De Contes wrote:
>>> gksudo 'mount -t vboxsf -o uid='`id -u`',gid='`id -g`' dossier-
>>> partage '`echo ~/`'Bureau/partage'
>>> marche très bien quand je le tape dans un terminal
>>
>> Il se passe /des choses/, c'est juste que /rien/ n'est affiché ...
> 
> et donc, quelles "choses" il se passe, avec ce que j'ai écrit ?

A première vu un timeout d'authentification et/ou une erreur de syntaxe 
qui sont perdus dans /dev/null ou un cache quelconque.

>> pour
>> résoudre un problème il faut commencer par introduire un logging des
>> opérations ...
> 
> c'est bien ce qu'est censé faire gksudo

gksudo ne fait qu'élever les droits. Pour loguer ce qui se passe le plus 
simple/rapide devrait être de rediriger stderr

>> Un indice:
>> gksudo n'ouvre pas de terminal ...
> il est même fait pour ça

Certes, mais si on continue de réfléchir sur cette piste:
gksudo n'ouvre pas de terminal, donc ne lance pas de shell, donc 
n'interprète pas de lui même des commandes en backquotes ...

>> Un essai de résolution:
>> gksudo true; sudo *commande*
> 
> merci :-)

de rien, mais as tu essayé cette suggestion?

> j'ai trouvé que
> gksudo 'mount -t vboxsf -o uid='`id -u`',gid='`id -g`' dossier-partage 
> '`echo ~/`'Bureau/partage'
> dans un terminal, fonctionne comme attendu, mais
> sudo 'mount -t vboxsf -o uid='`id -u`',gid='`id -g`' dossier-partage 
> '`echo ~/`'Bureau/partage'
> donne
> usage: sudo -h | -K | -k | -L | -l | -V | -v
> usage: sudo [-bEHPS] [-p prompt] [-u username|#uid] [VAR=value]
>             {-i | -s | <command>}
> usage: sudo -e [-S] [-p prompt] [-u username|#uid] file ...
> 
> pourquoi y a t il cette différence ??
...
 > et donc je ne vois pas pourquoi sudo refuse d'exécuter la commande :-(

sudo interprète (justement) les commandes entre single quotes comme une 
chaîne de caractères donc comme le nom d'une commande unique qui 
comprendrait des espaces, d'où l'erreur de syntaxe.

Cette commande devrait fonctionner dans un terminal:
sudo mount -t vboxsf -o uid=`id -u`,gid=`id -g` dossier-partage `echo 
~/`Bureau/partage

  > par ailleurs, il me semble que ça devrait être possible d'utiliser
> uniquement gksudo, puisque ça marche dans le terminal

cf plus haut ... pas de shell donc pas d'interprétation de commande bash

> entre temps, j'ai pensé aussi que ça serait plus simple pour les gens de 
> la liste de faire ca dans un lanceur,
> ça ne marche pas non plus, donc c'est probable que ça "aille ensemble",
> et de toutes façons ça me sera utile aussi :-)

Toujours pas de shell ... cependant il est possible de créer un lanceur 
qui "lance la commande dans un terminal"

> j'ai essayé de rajouter "sh -c" devant, pour voir :
> sh -c gksudo 'mount -t vboxsf -o uid='`id -u`',gid='`id -g`' 
> dossier-partage '`echo ~/`'Bureau/partage'

Et est-ce fonctionnel?


Sinon j'ai deux petites remarques de syntaxe:

* les backquotes c'est bien quand on pond un one-liner en vitesse, pour 
présenter du code et faciliter les corrections le $( ) est préférable 
(je sais c'est une question de goût mais je trouve ça tellement plus 
lisible)

* `echo ~/` ... un $HOME/ serait quand même plus clair ...


Enfin, je pense que ce fil aurait plus sa place sur une ML dédiée au 
scripting.

Bonne continuation

Ju
-- 
Si je suggérais qu'entre la Terre et Mars se trouve une théière de 
porcelaine en orbite elliptique autour du Soleil, personne ne serait 
capable de prouver le contraire pour peu que j'aie pris la précaution de 
préciser que la théière est trop petite pour être détectée par nos plus 
puissants télescopes. Mais si j'affirmais que, comme ma proposition ne 
peut être réfutée, il n'est pas tolérable pour la raison humaine d'en 
douter, on me considérerait aussitôt comme un illuminé. Cependant, si 
l'existence de cette théière était décrite dans d'anciens livres, 
enseignée comme une vérité sacrée tous les dimanches et inculquée aux 
enfants à l'école, alors toute hésitation à croire en son existence 
deviendrait un signe d'excentricité et vaudrait au sceptique les soins 
d'un psychiatre à une époque éclairée ou de l'Inquisition en des temps 
plus anciens.
    --Bertrand Russell




Plus d'informations sur la liste de diffusion ubuntu-fr