Comprendre chmod : la différence entre u+x et +x
La commande chmod est utilisée pour attribuer des autorisations sur des fichiers et des répertoires au sein d’un système Linux. Chmod peut accepter de nombreuses syntaxes différentes, telles que le mode symbolique et le mode absolu, il peut donc être un peu déroutant d’apprendre toutes les différentes façons dont chmod peut être utilisé. Lorsqu’il s’agit d’accorder à un utilisateur des autorisations d’exécution, les options u+x
et +x
sont souvent utilisées en raison de leur syntaxe simple et directe. Mais connaissez-vous la différence entre ces deux options ?
Dans ce tutoriel, vous allez découvrir les différences entre les options chmod u+x
et +x
sur la ligne de commande Linux. Nous couvrirons également un aperçu de base de cette syntaxe de commande en général, afin que vous acquériez une compréhension fondamentale de la façon d’utiliser chmod rapidement et efficacement pour attribuer des autorisations de lecture, d’écriture et d’exécution à des utilisateurs ou à des groupes sur votre système Linux.
Dans ce tutoriel, vous allez apprendre :
- La différence entre
les options u+x
et+x
pourchmod
- Comment utiliser la syntaxe symbolique
chmod
pour attribuer des autorisations à des comptes d’utilisateur, de groupe et autres - Comment le paramètre
umask
affecte-t-il la commandechmod +x
?
La différence entre les options chmod u+x et +x
Réponse courte
Si vous êtes pressé et que vous ne vous souciez pas des nuances derrière la commande chmod
, voici la réponse que vous cherchez :
u+x
attribuera des autorisations d’exécution à l’utilisateur (propriétaire) du fichier+x
attribuera des autorisations d’exécution sur le fichier à tous les utilisateurs de votre système
Explication plus longue
Commençons par jeter un coup d’œil à la commande suivante :
chmod u+x file.sh
Maintenant, nous pouvons le décomposer en commençant par la première option, qui est u
. Lors de l’attribution d’autorisations à un fichier avec la syntaxe chmod
et le mode symbolique, nous pouvons utiliser u
pour attribuer des autorisations à l’utilisateur actuel (propriétaire) du fichier. Une liste d’options totales comprend :
u
=l’user/propriétaire actuelg
=le groupe gpropriétaire du fichiero
=Tous les autrescomptes utilisateursa
=unll utilisateurs (utilisateur, groupe et tous les autres combinés)
Après avoir spécifié à qui nous voulons attribuer des autorisations (utilisateur, groupe, autres ou tous), le caractère suivant de nos options est le signe +
plus. Cela indique (intuitivement) que nous ajoutons des autorisations. Étant donné que le symbole +
vient après la lettre u
, nous savons que nous ajoutons des autorisations pour l’utilisateur. À cet endroit, nous pourrions utiliser :
+
=Ajouter des autorisations-
=retirer les autorisations=
=attribuer les autorisations spécifiées
Enfin, le dernier caractère de nos options est le x
, qui représente les autorisations d’exécution. Maintenant que nous avons décomposé la signification de chaque caractère, nous pouvons déterminer que les options u+x
ajoutent des autorisations d’exécution pour l’utilisateur du fichier. Gardez à l’esprit que les options suivantes peuvent être utilisées pour cette partie des options :
r
=Autorisations de lecturew
=Autorisations d’écriturex
=Exécuter les autorisations
Alors, qu’est-ce que cela signifie si nous spécifions +x
dans nos options chmod
, sans spécifier explicitement à qui nous voulons ajouter les permissions d’exécution ?
chmod +x file.sh
Dans la plupart des situations (voir ci-dessous pour lesquelles), l’utilisation de +x
est équivalente à l’utilisation de a+x
. En d’autres termes, il attribuera des autorisations d’exécution à tous les utilisateurs (utilisateur, groupe et tous les autres).
Des valeurs umask variables donneront des résultats différents
Il y a une grosse mise en garde à la réponse ci-dessus, grâce au paramètre umask
d’un système Linux.
umask
0002
Un paramètre umask
de 0002
, comme dans l’exemple ci-dessus, signifie que +x
sera effectivement équivalent à a+x
, comme nous l’avons vu précédemment. Un paramètre 0002
est l’umask
par défaut sur la plupart des systèmes Linux, mais vous pouvez rencontrer des résultats variables en fonction de la distribution que vous utilisez ou de la façon dont le système a été configuré.
Nous pouvons obtenir plus de précisions en ajoutant l’option -S
à la commande umask
:
umask -S
u=rwx,g=rwx,o=rx
Supposons que notre paramètre umask
soit défini sur 0003
à la place. Avec ce réglage, les paramètres a+x
et +x
pour chmod
nous donneront certainement des résultats différents.
umask 0003
Nous pouvons ensuite vérifier le paramètre :
umask
0003
umask -S
u=rwx,g=rwx,o=r
Avec umask
maintenant défini à 0003
, la commande chmod +x
n’attribuera que des permissions d’exécution à l’utilisateur et au groupe.
Réflexions finales
Dans ce tutoriel, nous avons appris la différence entre les options u+x
et +x
pour la commande chmod
sur un système Linux. Nous avons également vu une liste complète d’options similaires que nous pouvons utiliser avec la commande chmod
afin d’attribuer ou de révoquer des autorisations de lecture, d’écriture et d’exécution sur des fichiers pour l’utilisateur, le groupe et d’autres comptes. Enfin, nous avons appris l’impact du paramètre umask
lorsqu’il s’agit d’attribuer des autorisations sur Linux.