web-dev-qa-db-fra.com

Comment utiliser chmod pour créer des fichiers .sh exécutables?

Ma superposition tactile ne répond pas en mode portrait, mais en mode paysage, je suis parvenu à une page où je peux faire pivoter la saisie tactile de manière à ce qu'elle puisse fonctionner en mode portrait (avec ce conseil sur les forums Ubunt ). faire les scripts .sh et les exécuter. Je travaille avec des scripts Shell pour la première fois et j'utilise ceux de cette page et il m'a demandé de ne pas oublier de définir chmod pour qu'elle s'exécute pour les fichiers .sh à l'aide de ce code:

chmod 777 *.sh
1
Kayz5ive
  1. Manière facile dans Kubuntu (Ubuntu est la même). Propriétés du fichier sh que vous devez modifier.

solutionOne

  1. Ouvrez simplement un terminal et allez dans le dossier où vous manipulez le fichier .sh (comme le mien ci-dessous), puis exécutez chmod a+x foo.shfoo.sh est le nom du script.

    cd /path/to/script/directory
    chmod a+x foo.sh
    
3
peanek

La question semble: "Comment automatiser la création de fichiers .sh (ou de scripts en général) exécutables?" Et la réponse est que vous ne pouvez pas changer les autorisations par défaut pour les fichiers nouvellement créés. Cela se fait via mask . Les fichiers .sh ne sont pas spéciaux, ce sont juste des fichiers texte au niveau de base. Mais bien sûr, vous ne voulez pas changer umask pour donner une autorisation exécutable à un fichier texte aléatoire qui vient d'être créé, parce que vous ouvrez une boîte de failles de sécurité pour Pandora.

La réponse est donc que vous ne pouvez pas automatiser cela sans faille de sécurité déraisonnable. Une meilleure approche consiste simplement à prendre l'habitude d'exécuter chmod soi-même ou d'exécuter des scripts en tant qu'argument d'un interpréteur approprié, tel que bash foo.sh. Ou créez une fonction Shell pour appeler votre éditeur de texte favori afin de créer un fichier, puis chmod, par exemple

makesh(){
    for i; do
        vi "$i"
        chmod +x "$i"
    done
 }

Je sais que cette réponse n'est pas très amusante, mais c'est pratique

1