Dans certains exemples, j'ai constaté que certains utilisaient chown
au lieu de chmod
. Je ne sais pas où utiliser chmod
et chown
. S'il vous plaît, expliquez-moi la différence entre eux, quand et pourquoi je devrais utiliser l'un ou l'autre.
Créons un fichier
touch Rainbow
Regardons les métadonnées du fichier
$ ls -l Rainbow
-rw-rw-r-- 1 zanna zanna 0 May 24 10:09 Rainbow
La première partie de l'information est le type de fichier (-
au début signifie qu'il s'agit d'un fichier normal) et les bits d'autorisation
Après cela, nous voyons le propriétaire (zanna) et le groupe (zanna). Nous pouvons utiliser la commande chown
pour changer ceux-ci:
$ Sudo chown pixie Rainbow
$ ls -l Rainbow
-rw-rw-r-- 1 pixie zanna 0 May 24 10:09 Rainbow
Et nous utilisons chmod
pour changer les bits d'autorisation
$ Sudo chmod 333 Rainbow
$ ls -l Rainbow
--wx-wx-wx 1 pixie zanna 0 May 24 10:09 Rainbow
Les bits d'autorisation étant définis séparément pour le propriétaire, le groupe et les autres, vous pouvez contrôler les autorisations de fichiers pour différents utilisateurs en combinant chown
et chmod
. Voir ce petit guide pour un cours intensif sur les autorisations sous Linux.
En termes simples, chown
est utilisé pour changer la propriété d'un fichier alors que chmod
est utilisé pour changer les bits de mode de fichier.
chown
définit le propriétaire du fichier.chmod
définit qui peut faire quoi.Lorsque vous faites de quelqu'un le propriétaire d'un fichier, il peut faire presque n'importe où il veut ce fichier, par exemple, il peut utiliser chmod
pour modifier ses mods (par exemple, les permissions) pour définir qui peut faire quoi. .
$ ls -l file
-rwxrwxr-x 2 ravexina admins 26 May 9 12:49 file
Sur la ligne ci-dessus, nous pouvons voir que ravexina
est le propriétaire du fichier et admins
est le groupe. Je peux utiliser: Sudo chown dave:Sudo file
pour changer le propriétaire du fichier en dave
et le groupe en Sudo
name__; Maintenant, le fichier appartient à "dave" et à tous les membres du groupe "Sudo".
Cependant, avec chmod
name__, nous définissons qui peut faire quoi? qui a le droit de lire un fichier, d'écrire dans un fichier ou de l'exécuter. par exemple:
chmod 777 file
donne les droits de lecture, d'écriture et d'exécution à tout le monde, y compris le propriétaire, le groupe et tout le monde.
De turnoff.us :
Lors de l'examen des autorisations d'un fichier (ou d'un répertoire, ou autre), il existe deux facteurs:
chown
traite du who. chmod
traite du quoi. Vous ne pouvez pas utiliser l'un au lieu de l'autre.
Les autorisations Unix simples classent les utilisateurs essayant d'accéder à un fichier en trois types:
chown
est utilisé pour changer les deux premiers. chmod
est utilisé pour modifier les droits accordés à ces types.
Quelques points/conseils à ajouter aux excellentes réponses précédentes:
chown -R www-data files/
chown user:group myfile
chmod -R 775 files/
rendrait 'fichiers /' et tout ce qui se trouve dans et en dessous de celui-ci et lisible par tous, ce qui pourrait ne pas être le résultat souhaité pour chaque fichier. Utiliser chmod -R g+w files/
ajoutera simplement la permission d'écriture du groupe sans toucher à autre chose.Très bonnes réponses déjà, mais je voudrais faire une contribution où les autorisations sont très faciles à comprendre
chmod u=r+w,o=r-w,g=-r-w test.php
u = user
o = other
g = group
De cette façon, vous pouvez facilement ajouter des autorisations à un fichier. Dans l'exemple ci-dessus
user = read + write
other = read but not write
group = not read not write
Et n'oubliez pas le -R
si vous souhaitez modifier les autorisations de manière récursive.
chown
va changer who possède le fichier et le groupe auquel il appartient, alors que chmod
change comment les propriétaires et les groupes peuvent accéder au fichier (ou s'ils peuvent y accéder du tout).