Quel est le sens de “chmod 666”?

47

J'utilise Linux. Quel est le sens de chmod 666?

Seno
la source
28
aka, le commandement de Satan.
Moab
6
Si cela vous dérange (ou si vous ne pouvez pas vous soucier de vous rappeler ces chiffres), vous pouvez aussi l'écrire comme chmod a=rw.
starblue
commande inutile, car le troisième argument n'est pas donné ^^
kokbira
il peut également produire des failles de sécurité (tous les utilisateurs peuvent écrire le fichier / dossier) ou des autorisations de fichier / dossier inutiles
kokbira

Réponses:

112

chmod commande modifier les attributs d'un fichier / dossier:

  • chmod 666 file/folder signifie que tous les utilisateurs peuvent lire et écrire mais ne peuvent pas exécuter le fichier / dossier;
  • chmod 777 file/folder permet toutes les actions pour tous les utilisateurs;
  • chmod 744 file/folderautorise uniquement l'utilisateur (propriétaire) à effectuer toutes les actions; groupe et les autres utilisateurs ne sont autorisés qu'à lire.

    permission to:  user(u)   group(g)   other(o)     
                    /¯¯¯\      /¯¯¯\      /¯¯¯\
    octal:            6          6          6
    binary:         1 1 0      1 1 0      1 1 0
    what to permit: r w x      r w x      r w x
    
    binary         - 1: enabled, 0: disabled
    
    what to permit - r: read, w: write, x: execute
    
    permission to  - user: the owner that create the file/folder
                     group: the users from group that owner is member
                     other: all other users
    

Alternativement, vous pouvez exécuter la commande avec une syntaxe plus intuitive, sans avoir besoin de penser en binaire ou en octal (mais la connaissance de la syntaxe numérique est si importante): chmod u=rw, g=rw, o=rw file/folder

N'oubliez pas que les modifications d'autorisation avec la chmodcommande nécessitent au moins 3 arguments. Par conséquent, chmod 666rien ne se passe sans un fichier / dossier explicite pour modifier les autorisations.

Assurez-vous également de critiquer si cela ne produit pas de problèmes non sécurisés ou tout simplement s'il s'agit d'un changement d'autorisation inutile, car chmod 666il autorisera l'écriture de fichier / dossier sur tous et l'exécution sur aucun.

Kokbira
la source
5
Seulement c'est "octal", pas "décimal". +1 quand même.
Ben Voigt
1
Le troisième point mentionné dans le premier message est incorrect - chmod 711 autorise uniquement le propriétaire à effectuer toutes les actions; les groupes et autres sont uniquement autorisés à lire! [Entrez la description de l'image ici] 010 011 100 101 110 111 Octal 001, ou 1 indique une autorisation d'exécution. Octal 7, 111 indique une autorisation d'écriture, une autorisation d'exécution, d'où le numéro 711, rwx pour le propriétaire et x pour les groupes et autres.
3
De toute façon, il ne va que jusqu'à 7, il n'y a donc aucune différence entre octal et décimal dans ce cas. : /
Rob
oui, @Yash, et après 1 an, 2 mois et 18 jours après le message d'origine, quelqu'un a constaté l'erreur :) Je corrige cela en 744, par exemple.
Kokbira
1
@KyleVassella, ownerest le propriétaire du fichier ou du dossier, généralement celui qui l'a créé. groupest le groupe d'utilisateurs associé à ce fichier ou dossier, généralement le groupe de ce propriétaire. Imaginez donc que je suis rootbira et que mon groop soit rootusers et que vous apparteniez également à ce groupe, et que tous les autres membres du forum SU se trouvent dans un autre groupe. Si je crée un fichier et fais un chmod 750, je le
lirais
7

En termes simples, cela rend un fichier lisible et lisible par le propriétaire du fichier, son groupe et tous les autres utilisateurs de la machine (tous). Appliqué à un répertoire, il permet à tout le monde de lire (obtenir la liste du contenu des fichiers) d'un répertoire et d'écrire (créer, modifier des fichiers dans le répertoire), mais pas d'exécuter des fichiers à partir du répertoire.

Pour plus d'informations sur son chmodfonctionnement, consultez ce didacticiel pratique .

Ian C.
la source
2
... Ne voulez-vous pas dire que tout le monde puisse lire / écrire des fichiers mais ne pas s'exécuter, et que tout le monde puisse lire / écrire des fichiers dans un répertoire, mais pas la liste de tous les fichiers?
Earlz
2
ce que @earlz dit, plus écrire sur un répertoire ne signifie pas que vous pouvez éditer des fichiers à cet endroit (écrire sur un fichier est permanent), mais seulement que vous pouvez créer de nouvelles entrées (répertoires, fichiers, liens symboliques, etc.). Aussi, c'est gentil de votre part de mentionner des dir pour plus de complétude, mais 666 n'a pas de sens pour un dir; vous n'élimineriez jamais x pour le propriétaire.
Rich Homolka
1
@Earlz: merci pour cela. J'oublie toujours ce que 666 fait pour les répertoires car, eh bien, je n'ai jamais défini rw- pour un utilisateur dans un répertoire. :)
Ian C.
7

Comme mentionné dans d'autres réponses, chmod signifie changement de mode. Il affecte les autorisations de lecture, d'écriture et exécutable du propriétaire, du groupe et des autres catégories d'utilisateurs. Les numéros qui suivent la commande (dans ce cas 666) indiquent comment ces autorisations sont modifiées pour le fichier sur lequel la commande est exécutée (pour 666, cela signifie que le propriétaire, le groupe et les autres ont des autorisations de lecture et d'écriture, mais aucune autorisation exécutable). .

En modifiant les nombres en différentes valeurs, vous modifiez efficacement les autorisations du fichier. Le lien que j'ai référencé ci-dessus contient un petit outil permettant de déterminer les valeurs que vous devez entrer pour obtenir le schéma d'autorisations que vous recherchez. Il passe également en revue les options de commutateur disponibles pour la commande et quelques exemples pour vous aider à mieux comprendre son fonctionnement.

MaQleod
la source
1
C'est un site genial. Ça va dans mes marque-pages. Merci!
Kirk
5

La commande chmod (abrégée en mode de modification) est une commande Unix qui permet à un opérateur d'indiquer au système la quantité (ou très peu) d'accès qu'il doit autoriser pour un fichier. Commande chmod 666signifie que tous les utilisateurs auront des autorisations de lecture et d'écriture.

Seno
la source