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 27/10/2007, à 17:16

damieng

[Résolu] Monter une image .Iso SANS sudo

Bonjour à tous,

J'ai essayé à de nombreuses reprises de monter des images iso sans utiliser la commande SUDO mais sans succès.
C'est pour cela que je poste ici aujourd'hui. Je veux que les utilisateurs sans droits administrateurs puissent monter des images disques. Malheureusement, la fonction mount -o loop image.iso /media/monimage ne fonctionne qu'avec SUDO. Des solutions?

Merci d'avance

Damien

Dernière modification par damieng (Le 07/11/2007, à 23:07)

Hors ligne

#2 Le 27/10/2007, à 18:34

Hoper

Re : [Résolu] Monter une image .Iso SANS sudo

créer un groupe particulier qui aurait le droit, via sudo bien sur, de ne faire que la commande mount avec les droits root ?
est ce que les fichiers qu'il faut pouvoir monter sont toujours les memes ou pas ?


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#3 Le 27/10/2007, à 22:15

damieng

Re : [Résolu] Monter une image .Iso SANS sudo

Non, en fait, ce serait pour monter des images ISO de distrib Linux. Donc, il faut que cela soit indépendant du nom de l'image. J'avoue que cela m'a l'air bien compliqué et je ne veux pas qu'un utilisateur puissent utiliser Sudo surtout si c'est seulement pour ça.

Hors ligne

#4 Le 28/10/2007, à 19:14

damieng

Re : [Résolu] Monter une image .Iso SANS sudo

up up

Hors ligne

#5 Le 28/10/2007, à 19:33

seb0uil

Re : [Résolu] Monter une image .Iso SANS sudo

Salut,
Sur ubuntu, l'idée pour ca est justement d'utiliser sudo, c'est la pour ca..
Tu configure via sudoers afin que par exemple le groupe user puisse lancer les commandes mount / umount (avec ou sans mot de passe).
Tes utilisateurs du groupe user pourront alors sans soucis faire un sudo mount

Avec sudo  tu dois pouvoir filtrer sur l'extension de ce que tu souhaites monter (iso).

Une autre facon de faire, qui fonctionne sans sudo, est de mettre un setuid bit sur mount et umount

pour ca

sudo chown root `which mount`
sudo u+s `which mount`

sudo chown root `which umount`
sudo u+s `which umount`

et la, tout le monde peut lancer mount / umount comme s'il était root

voila, désolé du peu de détail, j'ai pas de pc linux sous la main (d'ou le wich pour ne pas se tromper dans le chemin !! tongue)


Java stuff ::
tPortal.. ma petite implémentation de la JSR168
jlibParam.. pooling, paramétrage etc...

Hors ligne

#6 Le 28/10/2007, à 21:07

Hoper

Re : [Résolu] Monter une image .Iso SANS sudo

e ne veux pas qu'un utilisateur puissent utiliser Sudo surtout si c'est seulement pour ça.

A la base, sudo n'a pas été concu pour passer root, mais simplement pour permettre de passer certaines commandes en tant que root et pas d'autres. Bref, sudo à été concu exactement pour ce que tu veux faire (cf message plus haut).


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#7 Le 28/10/2007, à 21:13

snigit

Re : [Résolu] Monter une image .Iso SANS sudo

Tu pourras le faire avec le paquet "fuseiso"

Hors ligne

#8 Le 28/10/2007, à 22:31

damieng

Re : [Résolu] Monter une image .Iso SANS sudo

Merci pour vos réponses, je vais essayer de tester prochainement et voir un petit plus en détail l'utilisation de sudo. Je reviendrai ici pour apporter mes conclusions. smile

Hors ligne

#9 Le 28/10/2007, à 22:53

HymnToLife

Re : [Résolu] Monter une image .Iso SANS sudo

Sinon, autre solution, tu ajoutes une ligne comme ça à ton fstab :

/tmp/image.iso    /media/iso    auto    loop,user,noauto    0 0

Et tu fais un petit script shell que les utilisateurs lancertont pour faire un symlink de leur iso vers /tmp/image.iso et la monter. L'avantage par rappor à l'utilisation de mount avec sudo est que les utilisateurs ne pourront pas monter/démonter les autres systèmes de fichiers.


- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#10 Le 28/10/2007, à 23:37

Smarter

Re : [Résolu] Monter une image .Iso SANS sudo

Comme l'a dit snigit, tu peux utiliser fuseiso(dispo dans les dépôts).
Pour l'installer:

sudo aptitude install fuseiso

Vérifie si fuse tourne sur ton système:

lsmod|grep fuse

Si ce n'est pas le cas:

sudo modprobe fuse

Et pour qu'il soit chargé au démarrage:

echo fuse|sudo tee -a /etc/modules

Ensuite ajoute les utilisateurs qui pourront monter des images isos au groupe fuse:

sudo adduser logindelutilisateur fuse

Enfin, tu pourras monter des images iso avec la commande:

fuseiso monfichier.iso monrepertoire

Pour démonter:

fusermount -u monrepertoire

Note: quand un utilisateur est ajouté dans un groupe il ne peut pas directement accéder aux fichiers du groupe(ici /dev/fuse nécessaire pour pouvoir utiliser fuseiso) il doit d'abords faire:

su nomdelutilisateur

Hors ligne

#11 Le 29/10/2007, à 08:37

damieng

Re : [Résolu] Monter une image .Iso SANS sudo

Alors, je viens de tester la première solution proposée et cela fonctionne trés bien.
Inconvénient, on peut monter les images n'importe où. Pour aller vite, j'ai voulu monter une image dans /home/mon_utilisateur et hop, plus rien dans le home, obligé de se logguer sur un autre utilisateur pour démonter l'image. Mais j'ai déjà d'autres projets pour sudoers.

Je vais tester la solution de HymnToLife qui à l'air intéressante bien que quelques détails supplémentaires ne serait pas de refus (j'y connais fichtre rien en script mais je vais me pencher sur la question).

Je vais voir aussi pour fuseiso qui semble une solution simple à mettre en oeuvre et qui semble permettre de monter plusieurs type d'image (ce qui peut être utile au cas où).

J'éviterai peut-être de bricoler avec setuid bit car la dernière fois qu j'ai touché à ce genre de chose, j'ai mon système qui est parti en sucette tongue.

Merci encore

Hors ligne

#12 Le 29/10/2007, à 10:32

seb0uil

Re : [Résolu] Monter une image .Iso SANS sudo

damieng a écrit :

Alors, je viens de tester la première solution proposée et cela fonctionne trés bien.
Inconvénient, on peut monter les images n'importe où. Pour aller vite, j'ai voulu monter une image dans /home/mon_utilisateur et hop, plus rien dans le home, obligé de se logguer sur un autre utilisateur pour démonter l'image. Mais j'ai déjà d'autres projets pour sudoers.

Salut,
je viens de faire l'essai en créant un user test, et cela fonctionne niquel

dans sudoers j'ai mis:

%test  ALL=NOPASSWD:/bin/mount *.iso /mnt/iso/ -o loop
%test  ALL=NOPASSWD:/bin/umount /mnt/iso/

Comme ca mon groupe test peut lancer la commande umont /mnt/iso/ et pas un autre umount
et mount *.iso /mnt/iso/ -o loop
Remarque que si je met mount /home/ISO/test.iso /mnt/iso -o loop ca ne marche pas car il manque le / apres le /mnt/iso/
Cette facon de faire est je pense celle qui colle le plus a ce que tu attends..

voila..


Java stuff ::
tPortal.. ma petite implémentation de la JSR168
jlibParam.. pooling, paramétrage etc...

Hors ligne

#13 Le 29/10/2007, à 23:25

damieng

Re : [Résolu] Monter une image .Iso SANS sudo

seb0uil, j'ai fait comme tu m'as dit et j'ai modifier en conséquence (à noter, trés bien vu le coup du /mnt/iso et /mnt/iso/ ). C'est exactement le type de comportement que je voulais (mais promis je test les autres solutions ce weekend, en plus je fais le pont, enjoy)

Je poste mon sudoers au cas ou certains seraient intéressés. A modifier en faisant

sudo visudo -f /etc/sudoers
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
# Defaults

Defaults	!lecture,tty_tickets,!fqdn

# Uncomment to allow members of group sudo to not need a password
# %sudo ALL=NOPASSWD: ALL

# Host alias specification

# User alias specification
User_Alias USERS=user1,user2

# Cmnd alias specification
Cmnd_Alias MOUNT=/bin/mount *.iso /media/iso/ -o loop ,/bin/umount /media/iso/

# User privilege specification
root	ALL=(ALL) ALL
USERS ALL=(ALL) MOUNT

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Du coup, suite à cela je me suis dit, pourquoi ne pas faire un petit script pour nautilus. Et là, gros vide. J'ai commencé un truc ultra rudimentaire (au niveau de mes connaissances quoi)

#!/bin/bash
#
# nautilus-mount-iso

gksudo 'mount /home/damien/vmware/fluxbuntu-7.10-installer-i386.iso /media/iso/ -o loop'

On ne rigole pas tongue Oui, je sais ce que vous allez me dire, pourquoi j'ai le nom de mon iso avec le chemin en dur, la réponse est simple, parce que je ne sais pas comment faire pour qu'il monte l'image qui est en surbrillance dans nautilus. J'ai vu dans certains scripts l'utilisations de "S*" mais ça fonctionne pas ici (où disons que je ne sais peut-être pas l'utiliser plutôt). Curieusement pour que gksudo fonctionne, il faut mettre des guillemets, simple ou double. Pourquoi mmystère car umount n'en a pas besoin.

Pour démonter, c'est plus simple (forcement).

#!/bin/bash
#
# nautilus-umount-iso

gksudo umount /media/iso/

Donc voilà, si vous avez des idées pour me permettre d'améliorer tout cela et que vous voulez ajouter des bouts de code, n'hésitez pas. Si cela abouti à quelques choses de pas trop mal, je ferai un petit post récapitulatif (ou pourquoi pas un article dans la doc).

Merci.

Dernière modification par damieng (Le 29/10/2007, à 23:50)

Hors ligne

#14 Le 30/10/2007, à 08:32

damieng

Re : [Résolu] Monter une image .Iso SANS sudo

up up

Hors ligne

#15 Le 30/10/2007, à 10:15

seb0uil

Re : [Résolu] Monter une image .Iso SANS sudo

content que ca marche smile

Pour le dernier point, j'avais installer dans mes scripts nautilus un mountiso.sh  qui peut t'interesser. Je me souviens avoir modifié 2/3 trucs pour des pb d'espace dans le nom des répertoires par rapport au script que j'avais initialement installé. Mais ca doit déja être un bon point de départ pour ce que tu veux faire ...

Dans ton cas, il faut verifier (et modifier) le ligne
#Directory where mounting the iso file
MountDirDefault="/media/iso"

Voila...


Java stuff ::
tPortal.. ma petite implémentation de la JSR168
jlibParam.. pooling, paramétrage etc...

Hors ligne

#16 Le 31/10/2007, à 20:26

damieng

Re : [Résolu] Monter une image .Iso SANS sudo

Merci seb0uil,

J'avance dans mon petit script en fouillant à droite à gauche, je me suis inspiré de ton script pour pouvoir déterminer le type de fichier (iso ou non) afin de ne pas monter un fichier qui ne peut pas l'être.

Voici la bête tongue

#!/bin/bash

gksudo "umount /media/iso/"

for iso
do
filetype=$(file -bi "$iso")
  if [ $filetype="x-iso9660" ]; then
    gksudo "mount "$iso" /media/iso/ -o loop"
  else
    gdialog --title "Erreur" --msgbox "Le fichier selectionné n'est pas un fichier ISO" 200 200
  fi
done

Et voici mes questions tongue tongue

1 - Comme vous pouvez le voir, j'utilise en première ligne umount. Pourquoi ? Car si je ne fais pas ça, si j'utilise de nouveau mount sur un autre fichier ISO, il me le monte bien mais crée une deuxième icône sur le bureau. Fâcheux car des ls deux icônes, il y a la même. Y a t-il une façon simple et élégante de tester si une image est déjà montée ou non?

2 - Les fichiers/chemins avec des espaces ne sont pas pris en charge (apparemment, c'était auss ton cas, mais je ne vois pas bien l'astuce que tu as utilisé seb0uil.

3 - Comment afficher les messages d'erreur quelque part, car si le script ne fonctionne pas, je n'ai aucun retour et je ne sais pas où est le problème. (Fonction DEBUG? si oui, je n'ai sais pas comment l'utiliser)

4 - C'est mon tout premier script et je cherche une doc bien faites sur les scripts Nautilus, un bon fichier PDF par exemple. Je n'ai rien trouvé d'extraordinaire, qqun aurait-il ça sous la main?

Merci d'avance pour vos réponses.

Dernière modification par damieng (Le 31/10/2007, à 20:30)

Hors ligne

#17 Le 31/10/2007, à 20:59

Smarter

Re : [Résolu] Monter une image .Iso SANS sudo

1 - Comme vous pouvez le voir, j'utilise en première ligne umount. Pourquoi ? Car si je ne fais pas ça, si j'utilise de nouveau mount sur un autre fichier ISO, il me le monte bien mais crée une deuxième icône sur le bureau. Fâcheux car des ls deux icônes, il y a la même. Y a t-il une façon simple et élégante de tester si une image est déjà montée ou non?

Rajoute quelque chose comme ça(pas testé, j'ai pas gdialog):

if [ "!$(mount|grep /media/iso)" ]; then
  gksudo "mount "$iso" /media/iso/ -o loop"
else
  FILE=$(mount|grep /media/iso|awk '{print $1})
  gdialog --title "Erreur" --msgbox "Le fichier "$FILE" est déjà monté dans /media/iso" 200 200
fi

Après, il doit être possible de proposer à l'utilisateur de démonter le fichier, mais je ne sais pas comment gdialog marche.

Hors ligne

#18 Le 01/11/2007, à 17:03

damieng

Re : [Résolu] Monter une image .Iso SANS sudo

Bon alors voilà mon script qui commence à prendre forme, je vous le soumet pour avoir vos avis et améliorations.
@smarter, j'ai essayé d'inclure les lignes que tu m'as proposé mais cela n'a pas fonctionné. Et comme je ne sais pas comment avoir un retour des erreurs du script, je n'arrive pas corriger comme il faut (je travaille à l'aveuglette hmm )
@smarter, gdialog et installé avec Zenity sauf erreur de ma part.

J'ai récupérer des bouts de code un peu partout et j'ai mixé tout ça, ce qui correspond à ceux que je voulais dans mon post de départ. Mais plus j'avance et plus j'aimerai intégrer des fonctions supplémentaires (image NRG,CUE/BIN,CCD, autres langues,choix du dossier de montage,...merci seb0uil pour le script, je vais essayer de m'en inspirer sans pour autant tout copier bêtement). Je sais que tout cela existe déjà mais c'est plus pour ma culture personnelle.

#!/bin/bash
#
# nautilus-mount
#
# Requis :
# sudo
# mount et umount (pour monter et démonter les volumes)
# devices loop
# zenity pour les boîte de dialogues
# le répertoire /media/iso doit avoir était crée au préalable
#
# Suggéré :
# Sudoers configuré pour autoriser l'action mount et umount aux utilisateurs 
######################################################
#Exemple de sudoers:
######################################################
## /etc/sudoers
#
## This file MUST be edited with the 'visudo' command as root.
##
## See the man page for details on how to write a sudoers file.
## Defaults

#Defaults    !lecture,tty_tickets,!fqdn

## Uncomment to allow members of group sudo to not need a password
# %sudo ALL=NOPASSWD: ALL

## Host alias specification

## User alias specification
#User_Alias USERS=user1,user2

## Cmnd alias specification
#Cmnd_Alias MOUNT=/bin/mount *.iso /media/iso/ -o loop ,/bin/umount /media/iso/

## User privilege specification
#root    ALL=(ALL) ALL
#USERS ALL=(ALL) MOUNT

## Members of the admin group may gain root privileges
#%admin ALL=(ALL) ALL

###################################################

###################################################
#                   Variables                     #
###################################################
iso=$(echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS)
filetype=$(file -bi "$iso")
fichier=`find "/media/iso" -maxdepth 1 -type f` # vérifie si des fichiers existent, si oui, cela signifie qu'une image disque est présente.
###################################################



###################################################
#                   Fonctions                     #
###################################################
function MOUNTISO {
gksudo "mount '$iso' /media/iso/ -o loop"
}
###################################################
###################################################
function UMOUNTISO {
gksudo "umount /media/iso/"
}
###################################################



###################################################
#                   Programme                     #
###################################################
if [ $filetype="x-iso9660" ]; then
	if [ "$fichier" = "" ]; then
	MOUNTISO
	else
	zenity --question --title "Image disque présente" --text "Une image ISO est déjà montée, la démonter pour monter la nouvelle?" 200 200
 	reponse=$?
		if [ "$reponse" = "0" ]; then
		UMOUNTISO
		MOUNTISO
		else
		exit 0
		fi
	fi
else
zenity --error --title "Erreur" --text "Ceci n'est pas une image ISO" 200 200

fi

Hors ligne

#19 Le 01/11/2007, à 23:12

LDI38

Re : [Résolu] Monter une image .Iso SANS sudo

Il y a aussi gmount-iso qui peut aider
http://doc.ubuntu-fr.org/gmount-iso

Hors ligne

#20 Le 02/11/2007, à 10:33

damieng

Re : [Résolu] Monter une image .Iso SANS sudo

Salut LDI38,

oui,effectivement gmount-so répond à ma problèmatique, le truc, c'est qu'il est un peu plus compliqué à utiliser. Dans les scripts, un simple clique droit suffit smile

Hors ligne

#21 Le 02/11/2007, à 19:29

damieng

Re : [Résolu] Monter une image .Iso SANS sudo

Bon, voilà, ajout du support des langues. Peut-être pas trés élégant ma méthode mais le résultat est bien celui que j'attends smile

Toute suggestions ou rapport de bugs est le bienvenu smile

#!/bin/bash
#
# nautilus-mount
#
# Requis :
# sudo
# mount et umount (pour monter et démonter les volumes)
# devices loop
# zenity pour les boîte de dialogues
# le répertoire /media/iso doit avoir était crée au préalable
#
# Suggéré :
# Sudoers configuré pour autoriser l'action mount et umount aux utilisateurs 
######################################################
#Exemple de sudoers:
######################################################
## /etc/sudoers
#
## This file MUST be edited with the 'visudo' command as root.
##
## See the man page for details on how to write a sudoers file.
## Defaults

#Defaults    !lecture,tty_tickets,!fqdn

## Uncomment to allow members of group sudo to not need a password
# %sudo ALL=NOPASSWD: ALL

## Host alias specification

## User alias specification
#User_Alias USERS=user1,user2

## Cmnd alias specification
#Cmnd_Alias MOUNT=/bin/mount *.iso /media/iso/ -o loop ,/bin/umount /media/iso/
#Cmnd_Alias PPPON=/etc/ppp/ppp-on 
#Cmnd_Alias PPPOFF=/etc/ppp/ppp-off 

## User privilege specification
#root    ALL=(ALL) ALL
#USERS ALL=(ALL) MOUNT,PPPON,PPPOFF

## Members of the admin group may gain root privileges
#%admin ALL=(ALL) ALL

###################################################

###################################################
#                   Variables                     #
###################################################
iso=$(echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS)
filetype=$(file -bi "$iso")
fichier=`find "/media/iso" -maxdepth 1 -type f` # vérifie si des fichiers existent, si oui, cela signifie qu'une image disque est présente.
langue="FR"
###################################################


###################################################
#                   Langues                       #
###################################################

case $langue in
		FR)
		image__already_mounted_title="Image disque présente"
		image__already_mounted_text="Une image ISO est déjà montée. Voulez-vous la démonter et monter la nouvelle?"
		error="Erreur"
		error_text_1="Ceci n'est pas une image ISO"
		;;
		EN)
		image__already_mounted_title="An image file is already mount"
		image__already_mounted_text="An image file is already mount, do you want umount current image file to mount new image file?"
		error="Error"
		error_text_1="This is not an ISO image file"
		;;
		*)
		image__already_mounted_title="An image file is already mount"
		image__already_mounted_text="An image file is already mount. Do you want umount current image file to mount new image file?"
		error="Error"
		error_text_1="This is not an ISO image file"		
		;;
esac

###################################################



###################################################
#                   Fonctions                     #
###################################################
function MOUNTISO {
gksudo "mount '$iso' /media/iso/ -o loop"
}
###################################################
###################################################
function UMOUNTISO {
gksudo "umount /media/iso/"
}
###################################################



###################################################
#                   Programme                     #
###################################################
if [ $filetype="x-iso9660" ]; then
	if [ "$fichier" = "" ]; then
	MOUNTISO
	else
	zenity --question --title "$image__already_mounted_title" --text "$image__already_mounted_text" 200 200
 	reponse=$?
		if [ "$reponse" = "0" ]; then
		UMOUNTISO
		MOUNTISO
		else
		exit 0
		fi
	fi
else
zenity --error --title "$error" --text "$error_text_1" 200 200

fi

Dernière modification par damieng (Le 02/11/2007, à 19:30)

Hors ligne

#22 Le 05/11/2007, à 15:03

snigit

Re : [Résolu] Monter une image .Iso SANS sudo

damieng a écrit :

oui,effectivement gmount-so répond à ma problèmatique, le truc, c'est qu'il est un peu plus compliqué à utiliser. Dans les scripts, un simple clique droit suffit smile

Normalement le clic droit était prévu pour Gmount-iso. Il suffisait de faire une fois "ouvrir avec" sur un fichier de type iso et nautilus proposait d'ouvrir avec Gmount-iso a chaque clic droit sur un fichier iso.

Seulement, l'empaqueteur a un peu cafouillé et cette option ne marche pas bien (en gros il est possible d'ouvrir Gmount-iso en faisant clic droit sur un fichier iso mais le nom du fichier est perdu en cours de route)

Pour réparer ca on peut faire un lien symbolique (comme c'était prévu à l'origine) :
On enlève le fichier créé :

sudo rm /usr/bin/Gmount-iso

Et on crée le lien :

sudo ln -s /usr/share/gmountiso/Gmount-iso.py /usr/bin/Gmount-iso

Normalement ca doit marcher, mais il faut toujours le sudo pour monter l'image.

Hors ligne

#23 Le 05/11/2007, à 15:10

Smarter

Re : [Résolu] Monter une image .Iso SANS sudo

Seulement, l'empaqueteur a un peu cafouillé et cette option ne marche pas bien (en gros il est possible d'ouvrir Gmount-iso en faisant clic droit sur un fichier iso mais le nom du fichier est perdu en cours de route)

Faudrait p'tête remonter ça sur le launchpad non?

Hors ligne

#24 Le 05/11/2007, à 15:46

snigit

Re : [Résolu] Monter une image .Iso SANS sudo

Normalement c'est bon, ca devrait être réglé pour la prochaine version.

Hors ligne

#25 Le 07/11/2007, à 23:04

damieng

Re : [Résolu] Monter une image .Iso SANS sudo

Et bien, c'est bon à savoir tout ça. J'essaierai probablement G-isomount à la prochaine version. En attendant, je pense avoir terminé mon script. Alors oui, il y a surement des choses à peaufiner mais il fonctionne relativement bien comme ça (j'avoue ne pas avoir chercher les bugs). Je le poste au cas où cela peut donner un coup de patte à qqun qui veut faire un script. Ls ajouts sur la versino ci-dessous:
Le chemin où monter l'ISO peut-être défini en éditant une ligne du script
Ajout de trois langues - Français, Anglais, Chinois

#!/bin/bash
#
# nautilus-mount
#
# Requis :
# sudo
# mount et umount (pour monter et démonter les volumes)
# devices loop
# zenity pour les boîte de dialogues
# le répertoire /media/iso doit avoir était crée au préalable
#
# Suggéré :
# Sudoers configuré pour autoriser l'action mount et umount aux utilisateurs 
######################################################
#Exemple de sudoers:
######################################################
## /etc/sudoers
#
## This file MUST be edited with the 'visudo' command as root.
##
## See the man page for details on how to write a sudoers file.
## Defaults

#Defaults    !lecture,tty_tickets,!fqdn

## Uncomment to allow members of group sudo to not need a password
# %sudo ALL=NOPASSWD: ALL

## Host alias specification

## User alias specification
#User_Alias USERS=user1,user2

## Cmnd alias specification
#Cmnd_Alias MOUNT=/bin/mount *.iso /media/iso/ -o loop ,/bin/umount /media/iso/
#Cmnd_Alias PPPON=/etc/ppp/ppp-on 
#Cmnd_Alias PPPOFF=/etc/ppp/ppp-off 

## User privilege specification
#root    ALL=(ALL) ALL
#USERS ALL=(ALL) MOUNT,PPPON,PPPOFF

## Members of the admin group may gain root privileges
#%admin ALL=(ALL) ALL

###################################################

###################################################
#                   Variables                     #
###################################################
iso=$(echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS)
filepath="/media/iso/"
filetype=$(file -bi "$iso")
fichier=`find "/media/iso" -maxdepth 1 -type f` # vérifie si des fichiers existent, si oui, cela signifie qu'une image disque est présente.
langue="FR"
###################################################


###################################################
#                   Langues                       #
###################################################

case $langue in
		FR)
		image__already_mounted_title="Image disque présente"
		image__already_mounted_text="Une image ISO est déjà montée. Voulez-vous la démonter et monter la nouvelle?"
		error="Erreur"
		error_text_1="Ceci n'est pas une image ISO"
		;;
		EN)
		image__already_mounted_title="An image file is already mount"
		image__already_mounted_text="An image file is already mount, do you want umount current image file to mount new image file?"
		error="Error"
		error_text_1="This is not an ISO image file"
		;;
		CH)
		image__already_mounted_title="磁盘映象" 
		image__already_mounted_text="ISO 映象已经装卸,您要卸载并充新新的ISO 的文档吗?"
		error="谬误"
		error_text_1="这不是一个 ISO 的文档"		
		;;
		*)
		image__already_mounted_title="An image file is already mount"
		image__already_mounted_text="An image file is already mount. Do you want unmount current image file to mount new image file?"
		error="Error"
		error_text_1="This is not an ISO image file"		
		;;
esac

###################################################



###################################################
#                   Fonctions                     #
###################################################
function MOUNTISO {
gksudo "mount '$iso' '$filepath' -o loop"
}
###################################################
###################################################
function UMOUNTISO {
gksudo "umount "$filepath""
}
###################################################



###################################################
#                   Programme                     #
###################################################
if [ $filetype="x-iso9660" ]; then
	if [ "$fichier" = "" ]; then
	MOUNTISO
	else
	zenity --question --title "$image__already_mounted_title" --text "$image__already_mounted_text" 200 200
 	reponse=$?
		if [ "$reponse" = "0" ]; then
		UMOUNTISO
		MOUNTISO
		else
		exit 0
		fi
	fi
else
zenity --error --title "$error" --text "$error_text_1" 200 200

fi

Voili, voilou. Merci à tous pour votre aide (NB: Fuseiso est aussi une excellente solution ; NB2 :  Trop puissant sudoers, c'est dantesque comme truc, je sens que je vais l'utiliser à toutes les sauces tongue , heureusement, je sais utiliser le recovery mode tongue )

Dernière modification par damieng (Le 07/11/2007, à 23:08)

Hors ligne