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 10/11/2008, à 16:44

winael

[Résolu par contournement]Sudo mount dans un script

Bonjour à tous,

Je cherche à écrire un script pour monter automatiquement un fichier iso dans /mnt puis de lancer vlc en mode DVD sur /mnt

Donc

1. On démonte /mnt
2. On choisi le fichier grace a une boite zenity
3. On monte le fichier iso sur /mnt
4. On lance VLC en mode DVD sur /mnt

Je souhaite créer un lanceur sur mon bureau qui me permet de lancer le script.

Probleme : si en commande je tape gksudo monscript.sh, VLC me répond qu'il ne peut se lancer en mode root.
Si je ne met pas de gksudo je ne peux pas taper mon mot de passe.

Comment faire sachant que je ne désire pas modifier les droits sudoers ?
y'a t'il possibilité de repasser en mode user une fois les commandes /umount /mnt passées ?

Cordialement,

Dernière modification par winael (Le 11/11/2008, à 16:52)


Libre, non pas comme dans entrée libre, mais comme dans Liberté
(Bouyop)Mon PC c 1 MAC boulet ! G pas windows, donc je pe pas intaller linux !
(pankkake) Windows VISTA : Virus, Infections, Spyware, Trojans, Adware.
OPEN your mind, you'll discover a FREE world

Hors ligne

#2 Le 10/11/2008, à 17:06

pipou24

Re : [Résolu par contournement]Sudo mount dans un script

http://doc.ubuntu-fr.org/nautilus_scripts#monter_et_demonter_une_image_iso

et http://www.grumz.net/?q=node/282 wink


Non geek et fier de l'être. ㋡

Hors ligne

#3 Le 10/11/2008, à 19:06

Dark-Sham

Re : [Résolu par contournement]Sudo mount dans un script

Un conseil : Ne mets jamais de sudo, su, gksudo ou similaire dans un script. Tu mets toutes tes commandes telles quelles, et tu lances ton script avec sudo ou c'que tu veux pour être root wink

Dernière modification par Dark-Sham (Le 10/11/2008, à 19:06)


Script de sauvegarde/restauration APT

Ubuntu 8.04 "Hardy Heron"
CPU : AMD Athlon XP 2800+ ; GPU : ATI Radeon 9250/9200 Series ; RAM : 2 Gigots + 512 Mégots ; Carte mère : Asus A7N8X-E Deluxe

Hors ligne

#4 Le 11/11/2008, à 01:01

winael

Re : [Résolu par contournement]Sudo mount dans un script

@ Dark-Sham : Le Pb c'est que ça fout la grouille avec vlc qui n'accepte pas de se lancer en root si je met un gksudo dans l'invite de commande de mon lanceur sad

Voici mon script :

#!/bin/bash

##################################
#                                #
#     SCRIPT LECTEUR DVD ISO     #
#                                #
##################################

##################################
#                                #
# Contact : vinzjobard@gmail.com #
#                                #
##################################

# Petit script permettant de lire directement dans VLC un film sur une image iso de dvd

# Ce script est sous licence GPL V2




# I. Réinitialisation de /mnt

# On réinitialise le dossier qui sert à monter l'image iso

gksudo -u root -k umount /mnt

# II. Définition des variables

# On charge le nom de l'image DVD iso dans la variable 'dvdiso'.
# La boîte de dialogue de selection de fichier zenity nous permet de graphiquement alimenter cette variable

dvdiso=$(zenity --file-selection --title="Image DVD ?" --filename=FILENAME)

# III. Execution du script

# On monte l'image iso correspondant au fichier selectionner (variable dvdiso) dans le dossier '/mnt' puis on lance VLC en mode lecteur de DVD pointant sur le dossier '/mnt'

gksudo -u root -k -m "Montage du disque..." mount -o loop $dvdiso /mnt && vlc dvd:///mnt

J'ai essayé avec les liens que m'a envoyé pipou24, malheureusement maintenant le problème vient de gksudo...

h$ ./DVDiso.sh 

(zenity:4226): Gtk-CRITICAL **: gtk_file_chooser_default_set_current_name: assertion `impl->action == GTK_FILE_CHOOSER_ACTION_SAVE || impl->action == GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER' failed
gksudo: invalid option -- 'o'
GKsu version 2.0.0

Usage : gksudo [-u <utilisateur>] [options] <commande>

  --debug, -d
    Affiche à l'écran des informations pouvant être utiles 
    au diagnostic ou à la résolution de problèmes.

  --user <utilisateur>, -u <utilisateur>
    Lance <commande> en tant qu'utilisateur renseigné.

  --disable-grab, -g
    Désactive le « verrouillage » du clavier, de la souris
    et du focus effectué par le programme lors de la 
    demande d'un mot de passe.
  --prompt, -P
    Demande à l'utilisateur s'il veut que le clavier et la 
    souris soient verrouillés avant de poser le verrou.
  --preserve-env, -k
    Préserve l'environnement courant, ne positionne pas $HOME
    ni $PATH par exemple.
  --login, -l
    Se connecte dans un interpréteur de commmandes. Faîtes 
    attention, ceci peut créer des problèmes avec la magie
    Xauthority. Vous pouvez lancer xhost pour autoriser un
    utilisateur à ouvrir des fenêtres sur votre écran !

  --description <description|fichier>, -D <description|fichier>
    Fournit pour la commande,  un nom descriptif qui sera utilisé
    comme message par défaut. Vous avez aussi la possibilité 
    d'indiquer le chemin absolu vers le fichier .desktop. Le nom
    de la clef sera alors utilisé dans ce cas.
  --message <message>, -m <message>
    Remplace le message affiché habituellement pour demander 
    un mot de passe, par celui fournit en argument.

  --print-pass, -p
    Demande à gksu d'imprimer le mot de passe sur la sortie
    standard (comme le fait ssh-askpass). Utile pour
    l'utilisation dans des scripts qui récupèrent le mot de
    passe sur l'entrée standard.

  --sudo-mode, -S
    Fait en sorte que GKSu utilise su, comme si « gksudo » avait
    été lancé.
  --su-mode, -w
    Fait en sorte que GKsu utilise su, au lieu d'utiliser
    libgksu par défaut.
VLC media player 0.9.4 Grishenko
[00000001] main libvlc debug: VLC media player - version 0.9.4 Grishenko - (c) 1996-2008 the VideoLAN team
[00000001] main libvlc debug: libvlc was configured with ./configure  '--build=i486-linux-gnu' '--enable-maintaner-mode' '--enable-release' '--prefix=/usr' '--enable-libtool' '--enable-fast-install' '--with-binary-version=1ubuntu3' '--disable-update-check' '--disable-gnome' '--disable-gtk' '--disable-familiar' '--disable-fb' '--enable-ggi' '--enable-sdl' '--enable-esd' '--enable-mad' '--enable-arts' '--enable-jack' '--enable-pulse' '--enable-lirc' '--enable-a52' '--enable-aa' '--enable-dvbpsi' '--enable-mozilla' '--with-mozilla-pkg=libxul-plugin' '--disable-kde' '--enable-mp4' '--enable-dvb' '--disable-satellite' '--enable-ogg' '--enable-vorbis' '--enable-shout' '--enable-qt4' '--disable-slp' '--enable-flac' '--disable-skins' '--disable-basic-skins' '--enable-skins2' '--enable-freetype' '--enable-mkv' '--enable-speex' '--enable-caca' '--enable-live555' '--enable-libmpeg2' '--enable-fribidi' '--enable-cdio' '--enable-mod' '--enable-theora' '--enable-modplug' '--enable-dvdnav' '--enable-gnutls' '--enable-ffmpeg' '--enable-ncurses' '--enable-smb' '--disable-gnomevfs' '--enable-bonjour' '--enable-mpc' '--enable-vcd' '--enable-vcdx' '--enable-notify' '--enable-twolame' '--enable-x264' '--enable-faad' '--disable-zvbi' '--enable-telx' '--enable-mediacontrol-bindings' '--disable-atmo' '--enable-taglib' '--enable-libass' '--enable-libdca' '--enable-alsa' '--enable-dv' '--enable-v4l' '--enable-v4l2' '--enable-pvr' '--enable-svgalib' '--enable-dvd' '--without-dvdcss' 'build_alias=i486-linux-gnu' 'CFLAGS=-g -O2' 'LDFLAGS=-Wl,--as-needed' 'CPPFLAGS=' 'CXXFLAGS=-g -O2'
[00000001] main libvlc debug: translation test: code is "Fr"
[00000001] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
libdvdnav: Using dvdnav version 4.1.2 from http://dvd.sf.net
libdvdnav: Can't read name block. Probably not a DVD-ROM device.
libdvdnav: Unable to find map file '/home/vincent/.dvdnav/.map'
libdvdnav: vm: failed to read VIDEO_TS.IFO
[00000412] main access error: no access module matched "dvd"
[00000408] main input error: open of `dvd:///mnt' failed: could not create access: no access module matched "dvd"

Quelqu'un pourrait il m'expliquer pourquoi l'argument option de mount est pris en considération par gksudo ? Je comprends pas trop là.

Cordialement,


Libre, non pas comme dans entrée libre, mais comme dans Liberté
(Bouyop)Mon PC c 1 MAC boulet ! G pas windows, donc je pe pas intaller linux !
(pankkake) Windows VISTA : Virus, Infections, Spyware, Trojans, Adware.
OPEN your mind, you'll discover a FREE world

Hors ligne

#5 Le 11/11/2008, à 02:01

philpep-tlse

Re : [Résolu par contournement]Sudo mount dans un script

Hum, vlc sait déjà lire les images iso...

Ensuite pourquoi utiliser absolument /mnt ? Tu peut monter ton iso n'importe où dans $HOME ou /tmp sans sudo smile (dans un dossier temporaire quelconque)...


le "lol" est aux boulets ce que le ";" est aux programmeurs
blog | Wiki Fvwm | Essayez le Window Manager From Scatch | Topic WMFS

Hors ligne

#6 Le 11/11/2008, à 10:12

Dark-Sham

Re : [Résolu par contournement]Sudo mount dans un script

gksudo -u root -k umount /mnt

Je vois pas l'utilité de ça ^^



gksudo umount /mnt

suffit normalement smile


Script de sauvegarde/restauration APT

Ubuntu 8.04 "Hardy Heron"
CPU : AMD Athlon XP 2800+ ; GPU : ATI Radeon 9250/9200 Series ; RAM : 2 Gigots + 512 Mégots ; Carte mère : Asus A7N8X-E Deluxe

Hors ligne

#7 Le 11/11/2008, à 10:26

pipou24

Re : [Résolu par contournement]Sudo mount dans un script

en plus démonter /mnt ne donnera rien. Il faut démonter /mnt/qqch


Non geek et fier de l'être. ㋡

Hors ligne

#8 Le 11/11/2008, à 14:32

winael

Re : [Résolu par contournement]Sudo mount dans un script

pipou24 a écrit :

en plus démonter /mnt ne donnera rien. Il faut démonter /mnt/qqch

Si on monte une image iso dans /mnt, par la commande :

$ sudo mount -o loop /mon/image/iso /mnt

Dans ce cas on doit d'abord démonter /mnt pour remonter une image dans ce dossier

D'autre part c'est la commande Mount/Umount qui demande les droits super utilisateur et non une question de dossier :

mount: seul l'usager ROOT peut faire cela

@philpep-tlse : C'est quelle option ? ça m'interesse grace ce que tu dit

Cordialement


Libre, non pas comme dans entrée libre, mais comme dans Liberté
(Bouyop)Mon PC c 1 MAC boulet ! G pas windows, donc je pe pas intaller linux !
(pankkake) Windows VISTA : Virus, Infections, Spyware, Trojans, Adware.
OPEN your mind, you'll discover a FREE world

Hors ligne

#9 Le 11/11/2008, à 16:52

winael

Re : [Résolu par contournement]Sudo mount dans un script

C'est super frustrant à en faire une VDM... Je viens de poser la question à mon meilleur ami (google) et celui-ci dans son premier lien m'a dirigé vers un site où l'on peut trouver un nautilus-action. Celui-ci ne marchant pas (ptete du à la nouvelle mouture de VLC), j'y ai regardé de plus près, modifier un truc, et hop magie magie un click droit sur un fichier .iso, lire avec VLC et que le spectacle commence.

Voici le nautilus-action en question : vlc-fr.schemas

Merci à vous tous


Libre, non pas comme dans entrée libre, mais comme dans Liberté
(Bouyop)Mon PC c 1 MAC boulet ! G pas windows, donc je pe pas intaller linux !
(pankkake) Windows VISTA : Virus, Infections, Spyware, Trojans, Adware.
OPEN your mind, you'll discover a FREE world

Hors ligne

#10 Le 12/11/2008, à 23:44

winael

Re : [Résolu par contournement]Sudo mount dans un script

et pour les curieux voilà ce à quoi je pensais initialement :

#!/bin/bash

##################################
#                                #
#     SCRIPT LECTEUR DVD ISO     #
#                                #
##################################

##################################
#                                #
# Contact : vinzjobard@gmail.com #
#                                #
##################################

# Petit script permettant de lire directement dans VLC un film sur une image iso de dvd en le choisissant dans un explorateur de fichier

# Ce script est sous licence GPL V2




# I. Définition des variables

# On charge le nom de l'image DVD iso dans la variable 'dvdiso'.
# La boîte de dialogue de selection de fichier zenity nous permet de graphiquement alimenter cette variable

dvdiso=$(zenity --file-selection --title="Image DVD ?" --filename=FILENAME)

# II. Lecture de l'image par vlc

# On monte l'image iso correspondant au fichier selectionné (variable dvdiso) dans VLC

vlc dvd://$dvdiso

Ajouter un leceur vers ce script et voilà smile


Libre, non pas comme dans entrée libre, mais comme dans Liberté
(Bouyop)Mon PC c 1 MAC boulet ! G pas windows, donc je pe pas intaller linux !
(pankkake) Windows VISTA : Virus, Infections, Spyware, Trojans, Adware.
OPEN your mind, you'll discover a FREE world

Hors ligne