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


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.


91
2018-03-08 22:30


origine




Réponses:


La page de manuel de chmod couvre cela.

  • tu signifie utilisateur.
  • g signifie groupe.
  • o représente les autres.
  • une 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 le même que 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éparé 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.


124
2018-03-08 22:33



J'ai une petite question, quelle est la différence entre un + x et un 111. Cela rend les deux exécutables - TheBro21
C'est parce que 1 est la notation octale qui signifie la permission d'exécution. 111 signifie exécutable pour utilisateur, groupe et autre. - Octavian Damiean
Grande réponse propre - m4heshd
L'effet umask est important, rendant chmod +x file différent de chmod a+x file - voir la réponse de Ravexina pour plus de détails. - Cinnam


Juste faire +x l'appliquera à tous les drapeaux: [u] ser, [g] roup, [o] thers.

Type man chmod pour plus d'informations.


19
2018-03-08 22:34



Je promets que j'ai d'abord vérifié le manuel mais ne l'ai pas vu depuis que j'ai sauté la description et sauté aux options. Je les vois maintenant si :-) - schwiz


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 tout le monde.

Si vous faites cela dans un répertoire, le répertoire peut être recherché à la place. Ainsi, vous pouvez lister le contenu d'un répertoire sur lequel vous avez une permission + x.


7
2018-03-08 22:51



désolé mais cette chose aussi n'a pas fonctionné pour moi. Je l'ai essayé avec sudo et je n'ai pas réussi à le faire fonctionner sur mon ordinateur. askubuntu.com/questions/178231/how-to-set-permission-in-ubuntu - Anirudha Gupta
@AnkitGupta Je ne suis pas sûr de ce que vous dites. Mon commentaire ne visait pas à résoudre un problème dans un autre Q & A. Essayez plutôt de demander des éclaircissements aux réponses. Modifiez votre question pour dire ce que vous avez essayé. Affiche la sortie. - belacqua


  • chmod u+x file signifie 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 appliquez les mods, cela pourrait 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 ignoré le umask et le fichier1 a un bit exécutable pour son propriétaire, mais le second n'a rien fait car il considère la valeur de umask.


1
2017-08-04 21:21