Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 02/12/2008, à 20:55

soupaloignon

[Résolu] Une idée de script, mais pas les compétences pour le faire

Bonjour à tous

J'ai une idée de script, mais pas les compétences pour le réaliser wink. Même si je vois la logique générale, cela s'arréte là. Donc si quelqu'un juge l'idée utile et a les compétences...

C'est à propos du dossier Private de la 8.10. Je trouve que c'est un peu pénible de le monter ou démonter en ligne de commande. C'est sur que l'on peut faire 2 lanceurs, pour monter et démonter, mais dans ce cas on ne sait jamais vraiment a quel stade est ce dossier.
L'idée serait donc de créer un scipt, accessible d'un tableau de bord par exemple. Un clic sur l'icône teste l'état du dossier.
Si le dossier Private est monté une fenêtre zenity s'affiche disant : Le dossier Private est actuellement ouvert, voulez vous le fermer ? (ou une expression plus pertinente). Un appui sur ok va démonter le dossier, un appui sur annuler le laisse en l'état.
Si le dossier Private est démonté une fenêtre zenity s'affiche disant : Le dossier Private est actuellement fermé, voulez vous le l'ouvrir ? (ou une expression plus pertinente). Un appui sur ok va monter le dossier, un appui sur annuler le laisse en l'état.

Qu'en pensez vous ?


Edit : pour ceux qui sont pressés, la solution est là : http://forum.ubuntu-fr.org/viewtopic.php?pid=2253871#p2253871

Dernière modification par soupaloignon (Le 03/12/2008, à 11:25)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#2 Le 02/12/2008, à 21:23

richardsantoro

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

Je ne sais rien de ce dossier, mais tu peux essayer de voir s'il existe une commande pour le vérifier le statut de ce dossier.

Sinon, je suppose qu'il n'y pas de danger a démonter quelque chose de déjà monté.

Tu fais un script avec un if ou un case ca prendra pas longtemps à faire smile, et l'apprentissage est très facile.


Logiciels incontournables => Terminator : terminal divisible; GNS3 : Simulation de réseau avec IOS Cisco; DIA : Editeur de diagrammes pour réseaux et autres; VirtualBox : Emulateur d'ordinateur

Hors ligne

#3 Le 02/12/2008, à 21:51

AnsuzPeorth

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

Je ne connais pas non plus ce dossier !!!???

#!/bin/sh
DOSSIER="adresse/du/dossier/private"
if [ -e "$DOSSIER" ]; then
 zenity --question --text="le dosssier est deja monté, voulez le démonter ?" && commande pour démonter || exit
else
 zenity --question --text="le dosssier n'est pas monté, voulez le monter ?" && commande pour monter || exit
fi

C'est du vite fait mais ca devrait le faire ! (a tester)

#4 Le 02/12/2008, à 21:54

soupaloignon

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

AnsuzPeorth a écrit :

Je ne connais pas non plus ce dossier !!!???

#!/bin/sh
DOSSIER="adresse/du/dossier/private"
if [ -e "$DOSSIER" ]; then
 zenity --question --text="le dosssier est deja monté, voulez le démonter ?" && commande pour démonter || exit
else
 zenity --question --text="le dosssier n'est pas monté, voulez le monter ?" && commande pour monter || exit
fi

C'est du vite fait mais ca devrait le faire ! (a tester)

Merci pour cette réponse, je teste ça de suite.

Info sur le dossier crypté de intépid ibex :
http://doc.ubuntu-fr.org/dossier_prive_crypte?s[]=private
https://help.ubuntu.com/community/EncryptedPrivateDirectory


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#5 Le 02/12/2008, à 22:00

AnsuzPeorth

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

J'ai oublié le exit a la fin du script ...

#6 Le 02/12/2008, à 22:10

richardsantoro

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

N'oublie pas de changer les droits sur le scripts qu'on vient de te fournir. De plus, inutile de te dire qu'il ne s'agit la que d'un "plan", il te faudra les vraies commandes pour faire quelques chose.


Logiciels incontournables => Terminator : terminal divisible; GNS3 : Simulation de réseau avec IOS Cisco; DIA : Editeur de diagrammes pour réseaux et autres; VirtualBox : Emulateur d'ordinateur

Hors ligne

#7 Le 02/12/2008, à 22:10

soupaloignon

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

#!/bin/bash
DOSSIER="/home/toto/Private"
if [ -e "$DOSSIER" ]; then
 zenity --question --text="le dosssier est deja monté, voulez le démonter ?" && umount.ecryptfs_private || exit
else
 zenity --question --text="le dosssier n'est pas monté, voulez le monter ?" && mount.ecryptfs_private || exit
fi
exit

Cela ne fonctionne pas hélas, le test renvoi toujours que le dossier est déjà monté. Lorsqu'il est effectivement monté, le script le démonte. Par contre lorsque le dossier Private est démonté, le script le voit comme monté.
Ceci dit le dossier Private est toujours présent dans le home, qu'il soit monté ou non. Mais lorsqu'il ets démonté il y a un cadenas indiquant que le contenu n'est pas accessible.
Il faudrait faire un test sur les permissions plutôt que sur la présence ?

Dernière modification par soupaloignon (Le 02/12/2008, à 22:14)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#8 Le 02/12/2008, à 22:22

AnsuzPeorth

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

le if [ -e ..] test si le dossier existe, si il est present dans ton home meme démonter, faut chercher ailleurs le point de montage, ou peut etre dans les options du dossier

#9 Le 02/12/2008, à 22:23

soupaloignon

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

Bon, j'ai contourné le problème en faisant tester au script la présence d'un fichier dans le dossier Private (fichier 01). S'il arrive à le voir, c'est que le dossier est ouvert, et inversement. Là ça fonctionne, mais ça manque d'élégance big_smile

#!/bin/bash
DOSSIER="/home/toto/Private/01"
if [ -e "$DOSSIER" ]; then
 zenity --question --text="le dosssier est deja monté, voulez le démonter ?" && umount.ecryptfs_private || exit
else
 zenity --question --text="le dosssier n'est pas monté, voulez le monter ?" && mount.ecryptfs_private || exit
fi
exit

Dernière modification par soupaloignon (Le 02/12/2008, à 22:24)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#10 Le 02/12/2008, à 22:30

soupaloignon

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

AnsuzPeorth a écrit :

le if [ -e ..] test si le dossier existe, si il est present dans ton home meme démonter, faut chercher ailleurs le point de montage, ou peut etre dans les options du dossier

Le dossier est monté dans le home, c'est juste une histoire de permissions.


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#11 Le 02/12/2008, à 22:34

richardsantoro

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

Il doit y avoir un fichier quelque part qui indique le statut du dossier en question.

Si tel est le cas, tu peux faire un truc comme ca "f=`cut -d: -f6 /etc/passwd | grep $name`"

(provient d'un script que j'ai fais en cours). Ici, on cherche une variable $name dans un le fichier /etc/passws et l'on récupère le 6ème champs (il faut donc connaitre la structure du fichier) de la ligne où l'on a trouvé le nom recherché.

Si tu fais la même chose en supposant qu'il y ait un champ avec marqué mount ou unmount, tu n'aura qu'a finaliser ton script.


Logiciels incontournables => Terminator : terminal divisible; GNS3 : Simulation de réseau avec IOS Cisco; DIA : Editeur de diagrammes pour réseaux et autres; VirtualBox : Emulateur d'ordinateur

Hors ligne

#12 Le 02/12/2008, à 22:36

soupaloignon

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

C'est plus élégant effectivement wink. Je vais rechercher ce fameux fichier


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#13 Le 02/12/2008, à 22:38

AnsuzPeorth

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

regarde là, tu y trouvera bien une option qui te convient

http://abs.traduc.org/abs-5.3-fr/ch07s02.html

#14 Le 02/12/2008, à 22:50

soupaloignon

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

AnsuzPeorth a écrit :

regarde là, tu y trouvera bien une option qui te convient

http://abs.traduc.org/abs-5.3-fr/ch07s02.html

Génial big_smile, merci beaucoup. Il y a l'option -r ( -r :le fichier dispose du droit de lecture (pour l'utilisateur ayant exécuté la commande)) qui convient parfaitement, et maintenant cela fonctionne.

Merci à tous pour vos réponses, quelle réactivité quand même !!! smile

Le script final est donc :

#!/bin/bash
DOSSIER="$HOME/Private"
if [ -r "$DOSSIER" ]; then
 zenity --question --text="le dosssier est deja monté, voulez le démonter ?" && umount.ecryptfs_private || exit
else
 zenity --question --text="le dosssier n'est pas monté, voulez le monter ?" && mount.ecryptfs_private || exit
fi
exit

Edit : Non, cela ne fonctionne pas en fait : http://forum.ubuntu-fr.org/viewtopic.php?pid=2253410#p2253410

Dernière modification par soupaloignon (Le 03/12/2008, à 00:12)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#15 Le 02/12/2008, à 22:50

geenux

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

mount -l

Quand tu fais ça, si le fichier est monté, tu le vois ? (je suis sous debian, donc je peut pas tester.)

Hors ligne

#16 Le 02/12/2008, à 22:57

soupaloignon

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

geenux a écrit :
mount -l

Quand tu fais ça, si le fichier est monté, tu le vois ? (je suis sous debian, donc je peut pas tester.)

Oui, il apparait dans la liste. Mais le problème est résolu (voir plus haut). Merci de t'être intéressé à la question wink

Dernière modification par soupaloignon (Le 02/12/2008, à 22:58)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#17 Le 02/12/2008, à 23:07

geenux

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

On a posté en même temps aussi roll
Bon, bah au moins tu sais que tu aurais pu faire avec mount -l aussi.

Hors ligne

#18 Le 02/12/2008, à 23:10

AnsuzPeorth

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

Pour que tout le monde puisse l'utiliser

#remplace
DOSSIER="/home/toto/Private"
#par
DOSSIER="$HOME/Private"

#19 Le 02/12/2008, à 23:19

soupaloignon

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

geenux a écrit :

On a posté en même temps aussi roll
Bon, bah au moins tu sais que tu aurais pu faire avec mount -l aussi.

Oui, mais je préfére la solution du test des droits, c'est plus cohérent.


AnsuzPeorth a écrit :

Pour que tout le monde puisse l'utiliser

#remplace
DOSSIER="/home/toto/Private"
#par
DOSSIER="$HOME/Private"

Très juste, je voulais le faire et puis j'ai zappé. Je viens de faire la modif

Dernière modification par soupaloignon (Le 02/12/2008, à 23:20)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#20 Le 02/12/2008, à 23:20

richardsantoro

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

Tu peux aussi demander à l'utilisateur de saisir son nom et faire en fonction

echo "Entrez votre nom"
read name

Dossier=/home/$name/Private


Logiciels incontournables => Terminator : terminal divisible; GNS3 : Simulation de réseau avec IOS Cisco; DIA : Editeur de diagrammes pour réseaux et autres; VirtualBox : Emulateur d'ordinateur

Hors ligne

#21 Le 03/12/2008, à 00:11

soupaloignon

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

Oup's, grosse erreur de ma part. En fait le script ne fonctionne pas en l'état.
Lorsque j'ai remplacé -e par -r je n'ai pas enlevé le 01 à la fin de la igne. Ce qui fait que le script testait toujours s'il avait accès ou non à ce fichier. Ce qui m'a fait croire qu'avec l'option -r c'était bon.
Mais en enlevant le 01 à la fin, cela ne fonctionne plus.

Je continue mes recherche


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#22 Le 03/12/2008, à 00:20

soupaloignon

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

Bon voilà, c'est bon cette fois wink. Avec un test sur les droits d'écriture.

Par contre si des fenêtres sont déjà ouvertes, la fenêtre Zenity ne passe pas en 1er plan. Il y a un moyen que cela soit le cas, histoire de ne pas avoir à cliquer dans le tableau de bord pour la faire apparaitre ?
J'ai trouvé ça: http://pwet.fr/tags/keywords/weblog/shell/(offset)/10
qui va dans ce sens (mais pas testé encore) mais cela me parait un peu lourd et demande l'installation d'un autre programme.
J'ai trouvé ça aussi : https://bugs.launchpad.net/zenity/+bug/272083
http://www.enemyterritory.fr/forums/index.php?s=d0482046dc74f09caf833bf3d8f4d2c9&showtopic=14764&pid=254258&st=0&#entry254258
Je laisse les liens dans le post pour creuser plus tard, parce que là, dodo wink

Le script "presque" final est donc

#!/bin/bash
DOSSIER="$HOME/Private"
if [ -w "$DOSSIER" ]; then
 zenity --question --text="le dosssier est deja monté, voulez le démonter ?" && umount.ecryptfs_private || exit
else
 zenity --question --text="le dosssier n'est pas monté, voulez le monter ?" && mount.ecryptfs_private || exit
fi
exit

Dernière modification par soupaloignon (Le 03/12/2008, à 00:36)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#23 Le 03/12/2008, à 01:19

soupaloignon

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

Bon, comme ça me titillait j'ai quand même creusé et j'ai trouvé la solution. J'écrirai tout ça demain, car là, c'est vraiment dodo wink


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#24 Le 03/12/2008, à 11:05

soupaloignon

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

Pour rappel le script fonctionne maintenant de manière impeccable avec l'option -w qui teste les droits d'écriture sur le dossier Private.
Le dernier problème était que la fenêtre zenity ne s'affichait pas au 1er plan, mais venait se loger dans le tableau de bord des applications ouvertes.

Après quelques recherches il s'avère que c'est un bug de zenity sur la version 8.10 d'Ubuntu, et, toujours après ces quelques recherches, il s'avère aussi qu'il y a un patch pour corriger ça wink

Télécharger le patch : http://launchpadlibrarian.net/18653141/zenity-2.24.0-focus.patch
Ensuite lancer cette ligne en console pour l'installer (si vous l'avez téléchargé sur le Bureau):

sudo patch -p0 /usr/share/zenity/zenity.glade < Bureau/zenity-2.24.0-focus.patch

il faut avoir le programme patch d'installé sur votre machine, si ce n'est pas le cas

sudo apt-get install patch

(ou avec aptitude selon vos préférences wink).

Et voilà, le bug est corrigé.


Bug sur le launchpad + le patch :https://bugs.launchpad.net/ubuntu/+sour … bug/272083
La ligne de commande qui va bien pour le lancer (dans le 1er post) : http://www.enemyterritory.fr/forums/index.php?s=d0482046dc74f09caf833bf3d8f4d2c9&showtopic=14764&pid=254258&st=0&#



J'ai rajouté dans le script une fenêtre d'info zenity confirmant l'état du dossier Private une fois que l'on a cliqué pour valider le changement d'état. Cela va rassurer les utilisateurs sans trop d'expériences. Dans le même esprit j'ai modifié également les textes, qui parlaient de montage et de démontage, des notions un peu obscures pour l'utilisateur de base (ce n'est pas péjoratif).
Il suffit maintenant juste de mettre le script dans un dossier quelconque du home utilisateur, et de faire un lanceur dans le tableau de bord qui pointe vers le script, pour avoir une icône toujours visible et prête à être utilisée.

Le script final :

#!/bin/bash
DOSSIER="$HOME/Private"
if [ -w "$DOSSIER" ]; then
 zenity --question --text="Votre dosssier Private est ouvert, voulez-vous le fermer ?" && umount.ecryptfs_private && zenity --info --text="Votre dossier Private est maintenant fermé" || exit
else
 zenity --question --text="Votre dosssier Private est fermé, voulez-vous l'ouvrir ?" && mount.ecryptfs_private && zenity --info --text="Votre dossier Private est maintenant ouvert" || exit
fi
exit

Dernière modification par soupaloignon (Le 03/12/2008, à 11:26)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#25 Le 01/05/2009, à 20:41

axx

Re : [Résolu] Une idée de script, mais pas les compétences pour le faire

Euh, ce script est super mais... il ne demande pas le mot de passe?
J'ai ptêtre mal compris le principe du dossier ~/Private mais je comprenais ça comme un dossier sécurisé dans son home, donc avec un niveau de sécurité supplémentaire (chiffré et demandant un mot de passe pour être monté).
Clairement, il est chiffré, mais si il n'y a pas besoin de mdp pour y accéder (une fois la session ouverte, on est d'accord), on perd pas mal en sécurité.

D'ailleurs, le script appelle ecryptfs-mount-private, hors quand on le lance soi-même (ou par le biais du fichier Access-Your-Private-Data.desktop), il demande le mot de passe. Comment le script peut-il contourner ça? C'est le fait de déclarer la variable $HOME?

Haut de page ↑