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

jipicy Messages postés 41342 Statut Modérateur 4 896
 
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
mamiemando Messages postés 34243 Date d'inscription   Statut Modérateur Dernière intervention   7 898
 
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 41342 Statut Modérateur 4 896
 
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
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