Pouvez-vous expliquer brièvement les principaux concepts et outils de ligne de commande utilisés pour gérer les autorisations de fichiers?
Chaque fichier a des droits pour trois catégories différentes:
Les droits signifient le droit de lire le fichier, le droit d'écrire dans le fichier ou le droit d'exécuter le fichier dans le cas d'un script ou d'un programme.
Sur la CLI, vous pouvez
chown
, par exemple. chown guillermooo
chgrp
, par exemple. chgrp root
chmod
, par exemple chmod u+w filename.ext
(Ajoute l'autorisation d'écriture pour le propriétaire du fichier filename.ext
)Si vous souhaitez en savoir plus sur chacun de ces outils, ouvrez un terminal et saisissez man [tool]
, par exemple. man chmod
.
Avertissement: La modification des autorisations des fichiers et des répertoires est potentiellement dangereuse et peut rendre votre système inutilisable. Lorsqu'il est exécuté de manière récursive en tant que root sur le mauvais chemin, nous pouvons arriver à un point où nous devrons réinstaller Ubuntu. Par conséquent, il est recommandé de ne pas modifier les autorisations en dehors des répertoires HOME et d'exécuter les commandes de manière récursive en tant que root doit être évité autant que possible.
Ubuntu a hérité du concept d'autorisations d'Unix lorsque, pour les fichiers ou les répertoires, trois tâches peuvent être autorisées ou refusées:
( Traverser un répertoire signifie essentiellement l’utiliser comme partie d’un nom de chemin. Voir https://unix.stackexchange.com/a/13891 ou - https://unix.stackexchange.com/questions/21251 pour plus d'explications.)
De plus, nous avons trois cas pour lesquels nous accordons une permission:
Maintenant, pour obtenir la combinaison de ceux-ci triés, nous utilisons un système binaire où chaque bit définit une permission. Ceci peut être mieux montré dans le tableau suivant
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | | | |
w | 010 | 2 | | | |
x | 001 | 1 | | | |
=======================================================
Number
Maintenant si on veut par exemple
a) le propriétaire d'un fichier (= utilisateur) a ravant, write et exautorisation d'exécution,
b) le groupe du fichier accepté read et exexécuter les autorisations, et
c) tous les autres ne devraient avoir read accès.
Ensuite, l'autorisation de fichier résultante sera:
u g o
rwx r-x r--
Pour obtenir cela dans les nombres octaux, par exemple. pour la commande chmod
ou lorsque nous devons comprendre un message d'erreur, nous devons remplir le tableau ci-dessus comme suit:
Permission | Binary | Octal | User | Group | Other |
======================================================
r | 100 | 4 | 4 | 4 | 4 |
w | 010 | 2 | 2 | 0 | 0 |
x | 001 | 1 | 1 | 1 | 0 |
======================================================
Numbers add to 7 5 4
Chaque numéro d'autorisation doit être ajouté pour résumer pour un utilisateur (4 + 2 + 1 = 7), un groupe (4 + 0 + 1 = 5) et un autre (4 + 0 + 0 = 4). Le nombre résultant est alors:
u g o
7 5 4
Nous avons maintenant deux options pour changer les bits de permission avec chmod
:
chmod u+rwx g+rx o+r filename
ou beaucoup plus simple avec
chmod 751 filename
Les deux commandes feront la même chose.
La permission par défaut d'un fichier nouvellement créé à la maison sera 664 (-rw-rw-r--).
Si nous voulons que les fichiers soient exécutables en tant que programmes, nous devrons changer cette permission.
Notez que nous devrons également modifier l’autorisation du répertoire dans lequel cet exécutable peut être placé. Seulement si les deux fichiers et du fichier exécutable du répertoire sont définis. nous serons autorisés à exécuter ce fichier en tant que programme.
Lors de la copie d'un fichier chez nous, il perdra ses autorisations qui seront remplacées par nos propres autorisations par défaut (sauf si nous copions à l'aide d'options avancées, par exemple une option d'archivage).
Notez également que les fichiers peuvent hériter de leur autorisation de leur point de montage, resp. options de montage. Ceci est important lorsque vous montez des lecteurs formatés Windows qui ne prennent pas en charge les autorisations Unix.
Nous nous rendons vite compte que ce n’était que la moitié de l’histoire. Nous devons également trier les biens. Pour ce faire, chaque fichier ou dossier a un propriétaire défini et une appartenance à un groupe défini.
Chaque fois que nous créons un fichier, nous en sommes le propriétaire et le groupe du fichier sera également le nôtre. Avec ls -l
, nous pouvons voir les autorisations, la propriété et le groupe tels qu'ils apparaissent dans l'exemple de sortie suivant:
-rw-rw-r-- 1 takkat takkat 4096 Sep 12 20:25 test
- Nous sommes uniquement autorisés à modifier les autorisations, les groupes ou la propriété d'un fichier qui est le nôtre.
Si nous ne sommes pas le propriétaire du fichier, nous obtiendrons une erreur Permission denied
. Seul root peut changer cela pour tous les fichiers. C’est pourquoi nous devons utiliser Sudo
lors de la modification de l’autorisation de fichiers qui ne nous appartiennent pas. Il existe deux commandes intégrées pour le faire chown
pour les utilisateurs et chgrp
pour les groupes.
Pour changer la propriété d'un fichier de personne en takkat
, nous pouvons émettre cette commande:
Sudo chown takkat testfile
Pour modifier le groupe d'un fichier en takkat
, nous émettons
Sudo chgrp takkat testfile
Lisez les pages de manuel des commandes pour plus de détails et d’options. Il existe également ce guide Nice plus élaboré recommandé pour la lecture ultérieure:
Trouvez également quelques questions connexes ici: