Dans certains exemples, j'ai vu que certains utilisaient chown
à la place de chmod
. Je ne sais pas où utiliser chmod
et chown
. Veuillez m'expliquer la différence entre les deux, quand et pourquoi je devrais utiliser l'un ou l'autre.
Réponses
Trop de publicités?En termes simples, chown
est utilisé pour changer la propriété d'un fichier tandis que chmod
est utilisé pour changer les bits de mode du fichier.
chown
définit qui possède le fichier.chmod
définit qui peut faire quoi.
Lorsque vous attribuez à quelqu'un la propriété d'un fichier, il peut faire presque tout ce qu'il veut avec ce fichier, par exemple il peut utiliser chmod
pour changer ses modèles (c'est-à-dire les autorisations) afin de définir qui peut faire quoi.
$ ls -l fichier
-rwxrwxr-x 2 ravexina admins 26 Mai 9 12:49 fichier
Dans 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 fichier
pour changer le propriétaire du fichier en dave
et le groupe en sudo
; Maintenant le fichier appartient à "dave" et à tout le monde dans le groupe "sudo".
Cependant, avec chmod
, 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 fichier
accorde les droits de lecture, écriture et exécution à tout le monde, y compris le propriétaire, le groupe et tout le monde d'autre.
De turnoff.us :
Créons un fichier
touch rainbow
Jetons un coup d'œil aux métadonnées du fichier
$ ls -l rainbow
-rw-rw-r-- 1 zanna zanna 0 mai 24 10:09 rainbow
La première partie des informations est le type de fichier (-
au début signifie qu'il s'agit d'un fichier régulier) et les bits de permission
Ensuite, nous voyons le propriétaire (zanna) et le groupe (zanna). Nous pouvons utiliser la commande chown
pour les changer:
$ sudo chown pixie rainbow
$ ls -l rainbow
-rw-rw-r-- 1 pixie zanna 0 mai 24 10:09 rainbow
Et nous utilisons chmod
pour changer les bits de permission
$ sudo chmod 333 rainbow
$ ls -l rainbow
--wx-wx-wx 1 pixie zanna 0 mai 24 10:09 rainbow
Étant donné que les bits de permission sont définis séparément pour le propriétaire, le groupe et les autres, vous pouvez contrôler les permissions de fichiers pour différents utilisateurs en combinant chown
et chmod
. Consultez ce guide rapide pour un cours intensif sur les permissions dans Linux.
Lors de la considération des permissions d'un fichier (ou d'un répertoire, ou autre), il y a deux facteurs:
- qui possède le fichier - l'utilisateur et le groupe, et
- ce qu'ils peuvent en faire - lire, écrire, exécuter ou une combinaison de ceux-ci.
chown
traite du qui. chmod
traite du ce. Vous ne pouvez pas utiliser l'un à la place de l'autre.
Les permissions simples d'Unix classent les utilisateurs tentant d'accéder à un fichier en trois types:
- le propriétaire du fichier
- les utilisateurs membres du groupe propriétaire du fichier
- tout le monde d'autre
chown
est utilisé pour changer les deux premiers. chmod
est utilisé pour changer les droits accordés à ces types.
Quelques points / astuces à ajouter aux précédentes réponses excellentes :
- Vous devez avoir l'autorisation d'exécution sur un répertoire (et sur tous ceux au-dessus) pour y accéder
- Utilisez l'option -R pour appliquer les changements de manière récursive à tout ce qui se trouve en dessous de la cible, par exemple
chown -R www-data files/
- Vous pouvez changer à la fois l'utilisateur et le groupe en utilisant la syntaxe
chown user:group myfile
- Il est souvent plus facile / mieux d'utiliser les options '+' et '-' plutôt que de définir des autorisations absolues, surtout lorsqu'il s'agit d'une combinaison de fichiers et de répertoires. Par exemple, si vous voulez donner des autorisations d'écriture au groupe dans un répertoire et à tout ce qui se trouve en dessous,
chmod -R 775 files/
rendrait 'files/' et tout ce qui est en dessous exécutable et lisible par tous, ce qui pourrait ne pas être le résultat souhaité pour chaque fichier. En utilisantchmod -R g+w files/
, vous ajouterez simplement l'autorisation d'écriture du groupe sans toucher à quoi que ce soit d'autre.
Des réponses très bonnes déjà, mais je voudrais apporter une contribution où les autorisations sont très faciles à comprendre
chmod u=r+w,o=r-w,g=-r-w test.php
u = utilisateur
o = autre
g = groupe
De cette façon, vous pouvez facilement ajouter des autorisations à un fichier. Dans l'exemple ci-dessus
utilisateur = lecture + écriture
autre = lecture mais pas écriture
groupe = ni lecture ni écriture
Et n'oubliez pas le -R
si vous voulez modifier les autorisations récursivement.
- Réponses précédentes
- Plus de réponses