Lorsqu'il s'agit de rendre un fichier exécutable, quelle est la différence entre chmod 755
y chmod +x
et quand dois-je les utiliser ? Jusqu'à présent, je n'ai utilisé que chmod +x
et je viens de lire quelque chose et ça utilisait chmod 755
et je ne pouvais pas dire s'il était préférable ou non d'utiliser chmod 755
o chmod +x
.
Réponses
Trop de publicités?Une différence importante est que chmod + est soumis aux restrictions de l'umask, et chmod <octal> ne l'est pas.
Prenons l'exemple suivant :
$ ls -l foo bar
---------- 1 gowenfawr users 0 Jul 7 16:40 bar
---------- 1 gowenfawr users 0 Jul 7 16:39 foo
$ umask
0022
$ chmod +w bar
$ umask 0002
$ chmod +w foo
$ ls -l foo bar
--w------- 1 gowenfawr users 0 Jul 7 16:40 bar
--w--w---- 1 gowenfawr users 0 Jul 7 16:39 foo
$
Ainsi, si vous souhaitez modifier les permissions d'une manière adaptée à vos paramètres umask, utilisez la syntaxe '+'. Mais si vous voulez le définir absolument sans tenir compte de l'umask, utilisez le format <octal>, et réalisez que vous devez spécifier tous les bits et pas seulement un delta.
En plus de ces belles réponses, je veux mentionner une petite différence, mais probablement importante. La commande chmod 755 file
est équivalent à chmod 0755 file
. Si nous exécutons cette commande sur un fichier qui a le bit SETUID ou le bit SETGID, elle supprimera le bit SETUID/SETGID. chmod +x file
ne touchera pas au bit SETUID/SETGID. Nous pouvons le voir dans l'exemple suivant :
~$ touch test
~$ chmod u+s test
~$ ll test
-rwSrw-r-- 1 mook mook 0 Sep 14 00:49 test
~$ chmod +x test
~$ ll test
-rwsrwxr-x 1 mook mook 0 Sep 14 00:49 test
~$ chmod 755 test
~$ ll test
-rwxr-xr-x 1 mook mook 0 Sep 14 00:49 test
- Réponses précédentes
- Plus de réponses