Pouvez-vous expliquer brièvement les principaux concepts et outils de ligne de commande utilisés pour gérer les autorisations de fichiers?
Pouvez-vous expliquer brièvement les principaux concepts et outils de ligne de commande utilisés pour gérer les autorisations de fichiers?
Réponses:
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 exemplechown guillermooo
chgrp
, par exemplechgrp root
chmod
, par exemple chmod u+w filename.ext
(Ajoute une permission 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 tapez man [tool]
, par exemple man chmod
.
chown guillermooo
cela ne devrait pas être chown guillermooo filename
?
Avertissement: la modification des autorisations des fichiers et des répertoires est potentiellement dangereuse et pourrait 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:
( Parcourir un répertoire signifie essentiellement l’utiliser dans le cadre d’un nom de chemin. Voir https://unix.stackexchange.com/a/13891 ou https://unix.stackexchange.com/questions/21251 pour plus d’informations.)
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 r ead, w rite, et e x ecute permission,
b) le groupe de fichier accordé r ead et e x autorisations ecute, et
c) tous les autres ne devraient avoir r accès ead.
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 chmod
commande 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 d'autorisation 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 se trouver. Seulement si le bit exécutable du fichier et celui 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, comme le montre 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 aurons une Permission denied
erreur. Seul root peut changer cela pour tous les fichiers. C'est pourquoi nous devons utiliser sudo
lors de l'édition de l'autorisation de fichiers qui ne sont pas les nôtres. 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 n'importe qui, takkat
nous pouvons émettre cette commande:
sudo chown takkat testfile
Pour changer 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 y a aussi ce joli guide plus élaboré recommandé pour la lecture ultérieure:
Trouvez également quelques questions connexes ici: