95 votes

Quelle est la différence entre "chmod +x" et "chmod 755" ?

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 .

206voto

Ravexina Points 50599

Version courte :

Pour pouvoir les comparer, nous devons les considérer sous le même angle, donc :

  • chmod +x est égal à chmod ugo+x (Basé sur umask valeur)
  • chmod 755 est égal à chmod u=rwx,go=rx

Explication :

Tout d'abord, vous devez savoir que :

  1. + signifie ajouter cette permission aux autres permissions dont dispose déjà le fichier.
  2. = signifie ignorer toutes les permissions, les définir exactement comme je le fournis.

    • Ainsi, tous les éléments "read, write, execute, sticky bit, suid et guid" seront ignorés et seuls ceux fournis seront activés.
  3. lecture = 4, écriture = 2, exécution = 1

    • Voici la logique binaire qui la sous-tend (si cela vous intéresse) :

      Symbolic:  r-- -w- --x  |  421
      Binary:    100 010 001  |  -------
      Decimal:    4   2   1   |  000 = 0
                              |  001 = 1
      Symbolic:  rwx r-x r-x  |  010 = 2
      Binary:    111 101 101  |  011 = 3
      Decimal:    7   5   5   |  100 = 4
                 /   /   /    |  101 = 5
      Owner  ---/   /   /     |  110 = 6
      Group  ------/   /      |  111 = 7
      Others ---------/       |  Binary to Octal chart

Utilisation de +x vous dites d'ajouter ( + ) le bit exécutable ( x ) au propriétaire, au groupe et aux autres.

  • c'est égal à ugo+x o u+x,g+x,o+x
  • Lorsque vous ne précisez pas lequel des propriétaires, groupes ou autres est votre cible, en cas de x il les considère tous. Et comme @Rinzwind l'a souligné, elle est basée sur umask il ajoute le bit à ceux umask permet. rappelez-vous que si vous spécifiez la cible comme o+r puis umask n'a plus d'effet.
  • Il ne touche pas les autres mods (permissions).
  • Vous pouvez également utiliser u+x pour ajouter uniquement le bit exécutable au propriétaire.

Utilisation de 755 que vous spécifiez :

  • 7 --> u=rwx (4+2+1 pour le propriétaire)
  • 5 --> g=rx (4+1 pour le groupe)
  • 5 --> o=rx (4+1 pour les autres)

Así que chmod 755 c'est comme : chmod u=rwx,g=rx,o=rx o chmod u=rwx,go=rx .

enter image description here

41voto

user167850 Points 230

chmod +x ajoute l'autorisation d'exécution pour tous les utilisateurs aux autorisations existantes.

chmod 755 définit le 755 l'autorisation pour un fichier.

755 signifie des autorisations complètes pour le propriétaire et des autorisations de lecture et d'exécution pour les autres.

9voto

Une autre façon de voir les choses (que je trouve plus facile à comprendre) est que chmod +x est de définir les permissions relativement alors que chmod 755 les met en place absolument .

Après chmod 755 est exécuté sur un fichier, ses permissions sera soit 755, ou rwxr-xr-x .

chmod +x prendra simplement les permissions existantes, et ajouter les droits d'exécution sur le fichier.

7voto

TopHat Points 3221

Je recommande de revoir le chmod pour plus de détails. Vous voyez simplement deux modes de fonctionnement différents disponibles avec la commande chmod pour accomplir la même tâche de modification des permissions.

Le mode octal utilise des chiffres et définit l'ensemble des permissions du fichier. Le mode caractère utilise les lettres et est généralement utilisé pour modifier les autorisations existantes.

chmod 755 fixe rwxr-xr-x tandis que chmod +x ajuste les permissions de sorte que le propriétaire, le groupe et le monde aient tous des permissions d'exécution ajoutées. En supposant que l'autorisation de fichier par défaut est de rwxr--r-- il l'ajusterait aux mêmes permissions que 755 des rwxr-xr-x .

6voto

Sergiy Kolodyazhnyy Points 97292

La différence réside dans les autorisations qui sont définies et dans 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 de propriétaires et les autres utilisateurs. C'est ce qu'on appelle le mode symbolique. Pour citer le man chmod :

L'opérateur + fait en sorte que les bits de mode de fichier sélectionnés soient ajoutés aux bits de mode de fichier existants de chaque fichier ; - fait en sorte qu'ils soient supprimés ; et = les ajoute et supprime les bits non mentionnés, sauf que les bits d'identification d'utilisateur et de groupe non mentionnés d'un répertoire ne sont pas affectés. ne sont pas affectés.

Avec chmod 755 vous utilisez des nombres octaux, dont la représentation binaire est utilisée pour définir des bits de permissions spécifiques. Les 3 premiers bits (à gauche) correspondent aux permissions du propriétaire, les 3 du milieu aux permissions du groupe, et les derniers (les plus à droite) correspondent aux permissions de tous les autres utilisateurs. L'ordre des bits est toujours le même, read,write,execute o rwx Ainsi, exactement parce que l'ordre est le même, un nombre individuel, lorsqu'il est converti en représentation binaire, activera les bits de permission pour lesquels le bit positionnel correspondant dans le nombre est 1 et désactivera celui qui est 0. Plus précisément :

  • Nombre octal 7 est 111 en binaire, donc vous mettez tous les bits de lecture, d'écriture et d'exécution pour le propriétaire ; rwx est réglé.
  • Nombre octal 5 est 101 en binaire, donc vous définissez les bits de lecture et d'exécution mais désactivez les bits d'écriture, et comme c'est 5 pour le groupe et les autres utilisateurs, ces deux catégories auront les mêmes permissions. Ainsi, r-x est réglé.

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X