'chmod u + x' contre 'chmod + x'

89

Quelle est la différence entre chmod u+x et juste chmod +x ? J'ai vu une tonne de tutoriels qui disent d'utiliser u + x pour rendre les scripts exécutables. Cependant, le u n'est pas mentionné dans l'aide ou le manuel de chmod. Omettre le u ne semble pas non plus avoir d'effet. Est-ce juste un argument désapprouvé? Merci.

    
posée schwiz 08.03.2011 - 23:30
la source

4 réponses

120

La page de manuel de chmod couvre cela.

  • u représente l'utilisateur.
  • g représente le groupe.
  • o représente les autres.
  • a représente tout.

Cela signifie que chmod u+x somefile n'accordera que le propriétaire de ces autorisations d'exécution de fichier alors que chmod +x somefile est identique à chmod a+x somefile .

La page de manuel de chmod dit:

  

Le format d’un mode symbolique est    [ugoa...][[+-=][rwxXstugo...]...][,...] .   Plusieurs opérations symboliques peuvent être   donnés, séparés par des virgules.

     

Une combinaison des lettres 'ugoa'   contrôle l’accès des utilisateurs au   le fichier sera changé: l'utilisateur qui   le possède (u), d'autres utilisateurs dans le fichier   groupe (g), d’autres utilisateurs ne figurant pas dans le   groupe de fichiers (o), ou tous les utilisateurs (a). Si   aucun de ceux-ci n'est donné, l'effet est   comme si «a» était donné, mais des bits qui   sont définies dans le umask ne sont pas affectées.

    
réponse donnée Octavian Damiean 08.03.2011 - 23:33
la source
19

Il suffit de faire +x pour l'appliquer à tous les indicateurs: [u] ser, [g] roup, [o] thers.

Saisissez man chmod pour plus d'informations.

    
réponse donnée matpie 08.03.2011 - 23:34
la source
7

chmod u+x rendra le fichier exécutable pour votre utilisateur (il ne l'ajoutera que pour votre utilisateur, bien qu'il puisse être déjà exécutable par le propriétaire du groupe ou "autre").

chmod +x ou chmod a+x ('tout plus bit exécutable') rend le fichier exécutable par tous.

Si vous faites cela dans un répertoire, il est possible de rechercher le répertoire dans le répertoire. Ainsi, vous pouvez lister le contenu d'un répertoire sur lequel vous avez une permission + x.

    
réponse donnée belacqua 08.03.2011 - 23:51
la source
1
  • chmod u+x file signifie que vous devez ajouter le bit exécutable au propriétaire du fichier en ignorant le umask (votre mod sera défini, pas de question).

  • chmod +x file signifie ajouter le bit exécutable au propriétaire, au groupe et aux autres en considérant le umask (première vérification avec umask puis application des mods, cela peut avoir des effets différents en fonction de la valeur de umask).

créons deux fichiers:

$ touch file1 file2
$ ls -l file1 file2
-rw-rw-rw- 1 ravexina ravexina 0 Aug  5 01:45 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug  5 01:45 file2

Maintenant, je mets le umask à "111" pour supprimer les bits exécutables: umask 111 .

$ chmod u+x file1
$ chmod  +x file2
$ ls -l file1 file2
-rwxrw-rw- 1 ravexina ravexina 0 Aug  5 01:47 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug  5 01:47 file2

Comme vous pouvez le voir, chmod a ignoré umask et le fichier1 a obtenu un bit exécutable pour son propriétaire, mais le second n'a rien fait car il considère la valeur de umask.

    
réponse donnée Ravexina 04.08.2017 - 23:21
la source

Lire d'autres questions sur les étiquettes