Bonjour,
Voci mon script que j'ai appelé test.sh :
#!/bin/sh
echo "SH fonctionne"
Et voici le message d'erreur quand je le lance :
-bash: ./test.sh: /bin/sh: bad interpreter: Permission non accordée
Est ce que quelqu'un a déjà rencontré ce probleme et l'a resolu ?
Merci de votre aide.
# pas chez moi
Posté par NeoX . Évalué à 1.
/bin/sh
neox@amd64-full-linux:~$ vi test.sh
neox@amd64-full-linux:~$ chmod 755 test.sh
neox@amd64-full-linux:~$ ./test.sh
SH fonctionne
neox@amd64-full-linux:~$
neox@amd64-full-linux:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2007-04-13 22:05 /bin/sh -> dash
neox@amd64-full-linux:~$ ls -l /bin/dash
-rwxr-xr-x 1 root root 86088 2007-03-05 07:00 /bin/dash
neox@amd64-full-linux:~$
[^] # Re: pas chez moi
Posté par NeoX . Évalué à 1.
[^] # qu'est ce qui passe chez moi
Posté par dubis . Évalué à 1.
-rwxr-xr-x 1 alonso 70000 32 jui 3 15:12 test.sh
:~$ls -l /bin/sh
lrwxrwxrwx 1 root root 4 mai 30 15:20 /bin/sh -> bash
:~$uname -a
Linux veloce 2.6.9-55.ELsmp #1 SMP Fri Apr 20 16:36:54 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux
Merci de votre aide
[^] # caractères fantomes ?
Posté par daggett . Évalué à 5.
$ od -c tt.sh
0000000 # ! / b i n / s h \n e c h o "
0000020 S H f o n c t i o n n e " \n
0000037
Si tu as un \r\n au lieu d'un \n à la fin du /bin/sh par contre, c'est un saut de ligne MS-DOS et le \r est interprété comme faisant partie du nom du shell, qui n'existe alors pas.
# partoche en noexec ?
Posté par Batchyx . Évalué à 4.
fait un mount sans arguments et regarde si ta partition est montée en noexec, si c'est le cas ajoute donc un exec pour ta partition dans /etc/fstab.
[^] # Re: partoche en noexec ?
Posté par Dan . Évalué à 2.
Sinon, /bin/sh en général c'est un lien vers le shell que t'utilises, donc je pense que c'est mieux de marquer bash ou tcsh ou zsh ou je sais pas quoi.
[^] # Re: partoche en noexec ?
Posté par Lol Zimmerli (site web personnel, Mastodon) . Évalué à 2.
Si bash est appelé sous le nom sh, il essaye d'imiter le comportement de démarrage des versions
historiques de sh aussi fidèlement que possible, tout en restant conforme aux spécifications
POSIX.
La gelée de coings est une chose à ne pas avaler de travers.
# heu ditess....
Posté par jeje99 . Évalué à 1.
./test.sh
ça marche pas ?
[^] # Re: heu ditess....
Posté par NeoX . Évalué à 1.
apparemment cela ne suffit pas
[^] # C'est le NFS
Posté par dubis . Évalué à 1.
Merci à tous de vos prompts réponses.
J'avais oublié de souligner que les HOME utilisateurs sont montés en NFS. J'ai donc déplacé le HOME dans le fichier "passwd" et cela a réglé le problème. Il me reste à savoir pourquoi j'ai un problème droit sur le NFS
Voici l'extrait du fstab :
serveur:/export/home /home nfs rw,user,auto 0 0
Encore merci
[^] # Re: C'est le NFS
Posté par NeoX . Évalué à 2.
soit regarder dans le fichier export de nfs savoir si tu autorise l'execution.
[^] # Re: C'est le NFS
Posté par dubis . Évalué à 1.
Je viens de rajouter exec à la ligne suivante de mon fstab :
serveur:/export/home /home nfs rw,user,exec,auto 0 0
Ca fonctionne ! L'erreur "-bash: ./test.sh: /bin/sh: bad interpreter: Permission non accordée" a disparue. Je peux executer les script avec tous mes utilisateurs.
Encore merci.
[^] # Re: C'est le NFS
Posté par NeoX . Évalué à 3.
comme les autres lignes.
et rajouter les options specifiques à NFS si besoin :
http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/ref-gu(...)
[^] # Re: C'est le NFS
Posté par dubis . Évalué à 1.
Pour info,l'option defaults fonctionne aussi.....
hostname:/export/home /home nfs defaults 0 0
Merci
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.