Comment rendre un fichier exécutable? [dupliquer]

25

Comment puis-je créer mon fichier pour que je puisse double-cliquer dessus, et cela fonctionne. C'est un script .sh , mais j'ai aussi des fichiers qui disent:

executable (application/x-executable)

dans la description de ce qu'ils sont.

Je ne peux lancer aucun de ces fichiers depuis le terminal ou en double-cliquant.

Si possible, je voudrais utiliser une interface graphique ou un terminal, mais pas une combinaison des deux.

Voici une capture d'écran de ce que je vois lorsque je clique avec le bouton droit de la souris, puis que je vais sur les propriétés. Le fichier en premier:

Et le script shell ici:

NB: J'accepte que ce soit un duplicata (je le cherchais, et je n'ai pas pu le trouver, donc j'ai demandé + a répondu, en espérant que je le trouverais) cependant, je ne pense pas à la question. fichiers de bureau est un doublon.

    
posée Tim 17.06.2014 - 21:18
la source

1 réponse

45

Il existe deux manières de rendre un fichier exécutable:

Méthode GUI

Accédez à l'onglet des autorisations, puis cochez la case Execute: [✓] Autorisez l'exécution du fichier en tant que programme.

Méthode de ligne de commande:

Il suffit de lancer:

chmod +x /path/to/your/file.txt

Notez que chmod propose également des options plus avancées. Il accepte trois groupes d'options, représentés par --- --- --- . Le premier ensemble de --- est User. Le second est Group et le dernier est Other (tout le monde).

r signifie Read, w pour Write et x pour eXecute.

Pour permettre à tout le monde de le lire, mais seul le groupe à exécuter et l'utilisateur à lire et à écrire, il s'agirait de -rw- rx- r-- . Cela serait ajouté à la commande en tant que:

chmod +rw-rx-r-- /path/to/file.extension

chmod peut également le faire en chiffres. Il est basé sur le binaire.

Il y a donc ces chiffres:

Exécuter par utilisateur est 100 . Execute by group est 010 . Execute by other est 001

L’écriture par utilisateur est 200 . Écrire par groupe est 020 . Écrire par d'autres est 002 .

Read by user est 400 . Lecture par groupe est 040 . Read by other est 004 .

Ensuite, vous les ajoutez ensemble pour obtenir la combinaison souhaitée.

Donc, pour permettre à tout le monde de le lire, mais seul le groupe à exécuter et l'utilisateur à l'écrire seraient 400 + 040 + 004 et 010 et 200

Cela correspond à 600 + 050 + 004 = 654 .

Vous pouvez alors exécuter la commande.

chmod +654 /path/to/file.extension

pour le définir. Donc, pour définir toutes les autorisations que vous pouvez exécuter:

chmod +rwxrwxrwx /path/to/file.extension

ou

chmod +777 /path/to/file.extension

Enfin, vous pouvez faire:

chmod -777 /path/to/file.extension

Pour retirer toutes les autorisations à tout le monde.

Et:

chmod +300 /path/to/file.extension

Pour ajouter des fonctions de lecture et d’écriture pour l’utilisateur, sans affecter les autres autorisations (par exemple, les autorisations d’exécution).

Ce site Web contient un petit outil très utile, dans lequel vous pouvez cocher les options souhaitées et vous donner la commande :

Cependant, toutes les combinaisons possibles ne sont pas judicieuses à utiliser; les principaux utilisés sont les suivants:

  • 755 - Owner a tout et Group et Other peuvent lire et exécuter

  • 700 - Owner a tout

  • 644 - Owner peut lire et écrire, et Group et Other peuvent lire

  • 600 - Owner peut lire et écrire

Et si vous utilisez des groupes d’utilisateurs non triviaux:

  • 775 - Owner peut lire et écrire, et Group et Other peuvent lire

  • 770 - Owner et Group ont tous et Other peuvent lire et exécuter

  • 750 - Owner a tout et Group peut lire et exécuter

  • 664 - Owner et Group peuvent lire et écrire, et Other peut simplement lire

  • 660 - Owner et Group peuvent lire et écrire

  • 640 - Owner peut lire et écrire, et Group peut lire

777 et 666 sont rarement utilisés, sauf dans /tmp .

Merci Ilmari Karonen pour signaler ceux couramment utilisés     

réponse donnée Tim 17.06.2014 - 21:25
la source

Lire d'autres questions sur les étiquettes