Lancer un script shell

tom45 -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour

J'ai fait un
script .sh 
. Il est bien exécutable
chmod +X
(droit
640
) J'ai copié le script sur mon bureau gnome sous centos 7, et j'aimerais bien le lancer directement avec un double clic comme si je lançais une application. Je n'arrive pas à trouver de méthode autre qu'avec le terminal.

Pouvez-vous m'aider ?

3 réponses

  1. jee pee Messages postés 31875 Date d'inscription   Statut Modérateur Dernière intervention   9 977
     
    Bonjour,

    Dans les droits, execution c'est +1
    donc il devrait être 7xx s'il t'appartient

    peut être chmod script.sh +x

    0
    1. tom45
       
      je viens d'essayer en 777 et j'avais déja le + X mais pareil quand je clic sur le script.sh il me l'ouvre avec un éditeur de fichier
      0
  2. tom45
     
    non j'ai tout essayé en user en root je n'arrives toujours pas j'ai vu aussi l'option sur le fichier qui permet de lancer automatiquement mais rien ne fonctionne

    une idée ?
    0
    1. Semper
       
      https://ubuntuplace.info/questions/320228/how-to-launch-shell-script-with-double-click-in-centos-7
      0
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    Bonjour,

    Plusieurs choses :
    • la commande n'est pas
      chmod +X script.sh
      mais
      chmod a+x script.sh
      . Les droits ne sont pas 640 mais 755 (donc tu pourrais écrire
      chmod 755 script.sh
      )
    • si tu mets des droits de type
      750
      alors il faut être soit propriétaire soit dans le groupe propriétaire du fichier. Ce qui signifie que si ce fichier appartient à
      root
      et que tu es identifié en
      toto
      tu ne pourras pas exécuter ce script.


    Bref, il faudrait commencer par nous reporter le résultat de
    ls -l script.sh
    et
    whoami
    . Ensuite il faudrait préciser ce que tu entends par "j'arrive à le lancer dans un terminal" : si tu le lances via
    /home/toto/script.sh
    ou
    ./script.sh
    , oui tu as les droits en exécution car
    script.sh
    est exécuté. Si tu lances
    sh /home/toto/script.sh
    ou
    sh ./script.sh
    , tu exécutes
    sh
    qui lit
    script.sh
    et seuls les droits en lecture sont utilisés (et donc rien ne garantit que tu as les droits en exécution).

    Il ne faut pas "par désespoir" mettre un fichier en 777. C'est donner l'opportunité à n'importe qui d'y injecter du code malveillant. De manière générale, il ne faut pas relâcher les droits sur un fichier sauf si on sait ce qu'on fait (e.g. partager un fichier ou dossier à d'autres utilisateur). Les seuls cas légitimes de changement de droits sont une pour corriger une erreur (fichier attribué à tort à un groupe / utilisateur).

    Ensuite et pour finir, il faut garder à l'esprit qu'exécuter un script dans un terminal, l'exécute mais n'ouvre pas un terminal dans lequel il va écrire ses résultats. Pour cela, il faudrait créer un raccourci vers ce fichier et indiquer que le script doit être exécuté dans un terminal (voir e.g. le lien de Semper).

    Bonne chance
    0