La différence réside dans les autorisations obtenues et le mode que vous utilisez pour les définir.
Avec chmod +x
, vous définissez le bit exécutable pour tous - le propriétaire, le groupe propriétaire et les autres utilisateurs. Ceci est connu comme mode symbolique. Pour citer le man chmod
:
L'opérateur + entraîne l'ajout des bits du mode fichier sélectionné aux bits du mode fichier existant de chaque fichier; - provoque leur retrait; et
= provoque leur ajout et provoque la suppression des bits non mentionnés, à l'exception du fait que les bits non spécifiés de l'utilisateur et de l'ID de groupe d'un répertoire sont
pas affecté.
Avec chmod 755
, vous utilisez des nombres octaux, dont la représentation binaire est utilisée pour définir des bits d’autorisations spécifiques. Premier (à gauche) 3 bits correspondent aux autorisations du propriétaire, au milieu 3 aux autorisations du groupe et le dernier (le plus à droite) correspond aux autorisations de tous les autres utilisateurs. L'ordre des bits est toujours le même, read,write,execute
ou rwx
Ainsi, exactement parce que l'ordre est le même, un numéro individuel converti en représentation binaire définira les bits de permission pour le bit de position correspondant dans le nombre 1 et Désactiver celui qui est 0. Spécifiquement:
- Le nombre octal
7
est 111 en binaire, vous définissez donc tous les bits en lecture, écriture et exécution pour le propriétaire; rwx
est défini.
- Le nombre octal
5
est 101 en binaire, vous définissez donc read et execute mais désactivez les bits d'écriture, et comme il s'agit de 5 pour le groupe et les autres utilisateurs, ces deux catégories auront les mêmes autorisations. Ainsi, r-x
est défini.
Voici la petite démo:
bash-4.3$ touch file1 file2
bash-4.3$ chmod +x file1
bash-4.3$ chmod 755 file2
bash-4.3$ ls -l file1 file2
-rwxrwxr-x 1 xieerqi xieerqi 0 7月 6 13:54 file1
-rwxr-xr-x 1 xieerqi xieerqi 0 7月 6 13:54 file2