Pb costaud de permissions sur /mnt

Phiphi57 Messages postés 789 Date d'inscription   Statut Contributeur Dernière intervention   -  
Phiphi57 Messages postés 789 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

j'ai un petit souci de permissions pour les répertoires de /mnt...
le probleme :
j'ai un script tout con de type (pour l'exemple)
#----
#!/bin/sh
echo "Hello World"
#----

si je le mets dans /home/phiphi
un ./hello.sh fonctionne
si je le mets dans un sous repertoire de /mnt (par exemple /mnt/jeux), ca ne fonctionne plus!
je suis obligé de passer par
sh /mnt/jeux/hello.sh
pour que le script fonctionne.
Ce qui est plus embêtant, c'est que pour certains programmes plus particuliers (.bin, ou scripts complexes) ca ne marche plus du tout.
Pourtant les permissions de /mnt sont les mêmes que pour les autres répertoires.
$ ll /|grep mnt 
drwxr-xr-x  12 root   root    1024 2006-01-05 21:44 mnt/

et
$ ll /mnt |grep jeux 
drwxr-xr-x  4 phiphi phiphi 4096 2006-01-05 21:44 jeux/


dans le fstab, j'ai les memes lignes pour /mnt et /home par exemple
/dev/hda8 /home ext3 defaults 0 2
/dev/hda6 /mnt/jeux ext3 defaults 0 2

bref, j'y compreds rien....

qqn a une idée ?
Merci d'avance!
derniere précision : je suis sous Debian Sid, noyau 2.6.14-1-k7

Phiphi

6 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Pas le temps de m'étaler, sorry :-(
    Un "man bash" avec une recherche avec comme motif "source", et "sourcepath" donne :
    .  fichier [arguments]
           source fichier [arguments]
                  Lire et exécuter les commandes contenues dans  le  fichier  avec
                  l'environnement  du  shell  en  cours,  puis renvoyer le code de
                  retour de la dernière commande exécutée dans le fichier.  Si  le
                  nom  du  fichier  ne  contient pas de slash, les chemins d'accès
                  contenus dans PATH sont parcourus pour rechercher le  répertoire
                  contenant  le  fichier.  Lorsqu'il est recherché dans le PATH le
                  fichier n'a pas besoin d'être exécutable. Le répertoire de  tra-
                  vail  en  cours  est  finalement  examiné si aucun fichier n'est
                  trouvé dans le PATH.  Si  l'option  sourcepath  de  la  commande
                  interne  shopt  est  désactivée, le PATH n'est pas parcouru.  Si
                  des  arguments  sont  fournis,  ils  sont  transmis   dans   les
                  paramètres  positionnels  lorsque le fichier est exécuté.  Sinon
                  les paramètres positionnel ne sont pas  modifiés.   Le  code  de
                  retour  est  celui  de  la dernière commande exécutée au sein du
                  script (0 si aucune commande n'est  exécutée),  et  faux  si  le
                  fichier n'est pas trouvé.
    
    sourcepath
                          La commande interne source (.) utilise la valeur  de  la
                          variable  PATH  pour  trouver le répertoire contenant le
                          fichier fourni en argument.  Cette option est active par
                          défaut.
    
    Donc essaie dans ton sous-répertoire de "/mnt" de lancer ton script avec juste un point suivi d'un espace et le nom de ton script :
    . hello.sh
    ;-))
    0
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    Ou tu peux aussi créer un lien (ln -s) par exemple dans /usr/local/bin qui pointe vers ton script.
    ln -s /home/phiphi/plop.sh /usr/local/bin/plop.sh

    Du coup ça marchera car /usr/local/bin est dans ton PATH :
    env | grep PATH

    Note quand tu lis cette variable que les répertoires sont consultés de gauche à droite : si je trouve dans le premier répertoire (/bin en général) c'est bon, sinon je passe au suivant (par exemple /usr/bin) etc... Si je ne trouve dans aucun de ces répertoires : commande not found. Si la commande figure dans deux répertoires, c'est la première trouvée qui dominera.

    C'est d'ailleurs pour ça qu'on ne met surtout pas "." au début de la variable PATH. Ce serait dommage que dans ".", un boulet ait mis un script appelé ls du genre :
    #!/bin/sh
    rm -rf /home/phiphi


    Bonne chance
    0
  3. Phiphi57 Messages postés 789 Date d'inscription   Statut Contributeur Dernière intervention   295
     
    Ok,

    bon, alors j'ai essayé effectivement le truc avec le "." de jipicy, et ca fonctionne :
    . ./hello.sh
    (mais pas le . hello.sh)

    Mis à part ca, le vrai problème est le suivant : je comptais installer des jeux ou des applications un peu costaude là dedans, sans me pourrir mes partitions système.
    mais dans ces cas, le script de lancement appelle un autre script, voir l'execution d'un binaire, et là ca marche vachement moins bien d'un coup!!! surtout s'il s'agit d'une démo de jeu uniquement en binaire!!
    Pour le moment, je mets tout dans /tmp, mais il a une taille limitée! et a priori ne sert pas a ca...
    ah, et derniere précision : le fait d'etre root ou non ne change rien a l'affaire... j'en perd mon latin...

    ce que je ne comprends pas, c'est pourquoi cette différence de comportement entre /tmp/jeux/ et /mnt/jeux ....

    Phiphi
    0
  4. Phiphi57 Messages postés 789 Date d'inscription   Statut Contributeur Dernière intervention   295
     
    Re!

    bon, j'ai un peu mieux ciblé le problème : il s'agit sans doute du montage de la partition...

    1/
    mount -t ext3 /dev/hda6 /mnt/jeux
    et tout fonctionne....

    2/
    fstab:
    /dev/hda6 /mnt/jeux ext3 defaults,users 0 2
    mount /mnt/jeux
    et ca ne fonctionne plus

    3/
    fstab :
    /dev/hda6 /mnt/jeux ext3 defaults 0 2
    mount /mnt/jeux
    et ca re-fonctionne a nouveau!!

    par contre je suis obligé de monter la partition en root...
    il semblerait donc que l'option "users" soit pénalisante ici...

    qqn confirme ?

    Phiphi
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    A mon avis (et je me trompe peut être), il semblerait que l'option "defaults" associée à d'autres options du genre "user" ou "users" ne soit pas compatible.
    Ou tu assignes les options par défaut : rw, suid, dev, exec, auto, nouser, et async
    ou tu mets tes propres options...

    Enfin ce n'est qu'un avis perso ;-))
    A confirmer donc.
    0
  7. Phiphi57 Messages postés 789 Date d'inscription   Statut Contributeur Dernière intervention   295
     
    effectivement... ca doit venir de ca :
    info mount :
    user   Autoriser les utilisateurs ordinaires à monter le système
           de  fichiers.  Le nom de l'utilisateur est noté dans mtab
           pour qu'il puisse  le  démonter  ensuite.  Ceci  entraîne
           l'utilisation  des  options  noexec,  nosuid, et nodev (à
           moins qu'elles ne soient explicitement surchargées, comme
           dans une ligne d'option user,exec,dev,suid).
    
    users  Permettre  à  tous les utilisateurs de monter et démonter
           le  système  de  fichiers.   Cette  option  implique  les
           options  noexec, nosuid, et nodev (sauf s'il y a une sur-
           charge par une option  ultérieure,  comme  sur  la  ligne
           users,exec,dev,suid).
    


    j'avais plus le "exec" ...

    Merci a vous deux !!

    Phiphi
    0