Forum Linux.redhat /bin/sh: bad interpreter: Permission non accordée

Posté par  .
Étiquettes : aucune
0
3
juil.
2007
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  . Évalué à 1.

    neox@amd64-full-linux:~$ which sh
    /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  . Évalué à 1.

      heu, je suis sur ubuntu 7.04 32bits
    • [^] # qu'est ce qui passe chez moi

      Posté par  . Évalué à 1.

      :~$ls -l test.sh
      -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  . Évalué à 5.

        Pas vraiment sûr que ça vienne de là (l'erreur serait "bad interpreter: Aucun fichier ou répertoire de ce type"), mais au cas où: il n'y a pas de caractère invisible qui viendrait polluer le nom de l'interpréteur ? fait un "od -c" sur ton script, tu devrait avoir exactement ça:

        $ 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  . Évalué à 4.

    tu à peut être pas les droits d'éxecution sur ta partition.

    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  . Évalué à 2.

      Ouais, ça me fat ça sur la partition FAT32.

      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  (site web personnel, Mastodon) . Évalué à 2.

        Oui et non : man bash, § APPEL :

        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  . Évalué à 1.

    chmod u+x test.sh
    ./test.sh


    ça marche pas ?
    • [^] # Re: heu ditess....

      Posté par  . Évalué à 1.


      [^]qu'est ce qui passe chez moi
      Posté par dubis (envoyer un message privé) le 03/07/2007 à 15:40. (lien). Évalué à 1.

      :~$ls -l test.sh
      -rwxr-xr-x 1 alonso 70000 32 jui 3 15:12 test.sh


      apparemment cela ne suffit pas
      • [^] # C'est le NFS

        Posté par  . Évalué à 1.

        Bonjour,

        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  . Évalué à 2.

          soit rajouté exec dans les options du fstab

          soit regarder dans le fichier export de nfs savoir si tu autorise l'execution.
          • [^] # Re: C'est le NFS

            Posté par  . Évalué à 1.

            Merci John,

            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.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.