Red Hat Linux 9: Guide de démarrage de Red Hat Linux | ||
---|---|---|
Précédent | Chapitre 13. Éléments de base de l'invite du shell | Suivant |
Précédemment dans ce chapitre, lorsque vous avez essayé de changer de répertoire pour accéder au répertoire de connexion root, vous avez reçu le message ci-dessous signifiant 'Permission refusée':
cd /root bash: /root: Permission denied |
Il s'agissait d'un exemple des fonctions de sécurité de Linux. Tout comme UNIX, Linux est un système multi-utilisateurs et les autorisations d'accès aux fichiers constituent pour le système l'un des moyens de se protéger contre les altérations malveillantes.
L'une des manières d'accéder aux fichiers lorsque l'autorisation vous est refusée consiste à utiliser la commande su pour vous connecter en tant que root, comme nous l'avons vu précédemment. En effet, toute personne connaissant le mot de passe root dispose d'un accès total aux fichiers.
Toutefois, il n'est pas toujours pratique, ni recommandé, de travailler en tant que super-utilisateur car il est facile d'endommager par erreur des fichiers de configuration importants.
Tous les fichiers et les répertoires sont la 'propriété' de la personne qui les a créés. Si vous avez par exemple créé le fichier sneakers.txt (reportez-vous à la Section 13.9.1) dans votre répertoire de connexion, ce fichier vous appartient.
De ce fait, vous pouvez décider qui est autorisé à le lire, le modifier ou (s'il ne s'agit pas d'un fichier texte mais d'une application) à l'exécuter.
La lecture, l'écriture et l'exécution sont les trois paramètres principaux pouvant être définis dans les autorisations d'accès. Comme les utilisateurs sont placés dans un groupe au moment de la création de leur compte, vous pouvez aussi spécifier quels groupes sont autorisés à lire, modifier ou exécuter un fichier.
Examinons sneakers.txt de plus près avec la commande ls et l'option -l (pour long) (reportez-vous à la Figure 13-11).
De nombreuses informations vous sont données dans cet exemple. Vous pouvez voir qui peut lire (r), modifier (w) et exécuter (x) le fichier, ainsi que la personne qui l'a créé (sam) et le groupe auquel cette personne appartient. Rappelez-vous que, par défaut, le nom de votre groupe est identique à votre nom de connexion.
Les autres informations situées à droite du groupe indiquent la taille du fichier, la date et l'heure de sa création ainsi que son nom.
La première colonne affiche les autorisations actuelles; elle est composée de 10 emplacements. Le premier correspond au type de fichier. Les neuf autres constituent en fait trois ensembles d'autorisations pour trois catégories différentes d'utilisateurs.
Par exemple:
-rw-rw-r-- |
Ces trois ensembles représentent respectivement le propriétaire du fichier ('owner'), le groupe auquel il appartient ('group') et les "autres" ('others'), à savoir les autres utilisateurs du systèmes.
- (rw-) (rw-) (r--) 1 sam sam | | | | type owner group others |
Le premier élément précisant le type de fichier, peut correspondre à l'une des catégories suivantes:
d — un répertoire
- (tiret) — un fichier standard (autre qu'un répertoire ou qu'un lien)
l — un lien symbolique vers un autre programme ou fichier situé à un autre emplacement sur le système
Dans les trois ensembles qui suivent le premier élément, vous verrez l'un des éléments suivants:
r — le fichier peut être lu (de l'anglais 'read')
w — le fichier peut être modifié ou écrit (de l'anglais 'write')
x — le fichier peut être exécuté (s'il s'agit d'un programme - de l'anglais 'execute')
Lorsque vous voyez un tiret dans la colonne propriétaire, groupe ou autres, cela signifie qu'une autorisation spécifique n'a pas été accordée. Examinez à nouveau la première colonne du fichier sneakers.txt et identifiez ses autorisations.
ls -l sneakers.txt -rw-rw-r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt |
Le propriétaire du fichier (sam) a l'autorisation de le lire et de le modifier. Le groupe, sam, est également autorisé à lire et modifier (écrire) sneakers.txt. Il ne s'agit pas d'un programme, le propriétaire et le groupe n'ont donc pas l'autorisation de l'exécuter.
Utilisez la commande chmod pour changer les autorisations. Cet exemple montre comment changer les autorisations de sneakers.txt à l'aide de la commande chmod.
Le fichier original avec ses paramètres initiaux d'autorisation se présentent comme suit:
-rw-rw-r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt |
Si vous êtes le propriétaire de ce fichier ou si vous êtes connecté au compte root, vous pouvez changer les autorisations d'accès au fichier du propriétaire, du groupe et des autres.
Pour l'instant, le propriétaire et le groupe peuvent lire et modifier le fichier. Toute personne extérieure au groupe ne peut que lire le fichier (r--).
![]() | Attention |
---|---|
N'oubliez pas que les autorisations d'accès aux fichiers sont des mesures de sécurité. Chaque fois que vous accordez à quelqu'un des droits de lecture, d'écriture ou d'exécution, vous augmentez les risques de manipulation, d'altération ou de suppression des fichiers. En règle générale, vous ne devriez accorder l'autorisation de lecture et d'écriture qu'aux personnes qui en ont vraiment besoin. |
Dans l'exemple suivant, nous voulons accorder à tous l'autorisation de modifier le fichier, afin qu'ils puissent le lire, le modifier et l'enregistrer. Cela signifie qu'il est nécessaire d'apporter des changements à la section 'autres' des autorisations d'accès au fichier.
Examinez tout d'abord le fichier. À l'invite du shell, tapez:
ls -l sneakers.txt |
La commande précédente affiche les informations suivantes:
-rw-rw-r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt |
Tapez maintenant les éléments suivants:
chmod o+w sneakers.txt |
La commande o+w indique au système que vous souhaitez accorder aux autres l'autorisation de modifier le fichier sneakers.txt. Pour vérifier le résultat de vos modifications, affichez à nouveau les informations du fichier. Le fichier ressemble maintenant à l'extrait suivant:
-rw-rw-rw- 1 sam sam 150 Mar 19 08:08 sneakers.txt |
Tout le monde peut désormais lire et modifier le fichier.
Pour supprimer les autorisations de lecture et d'écriture du fichier sneakers.txt utilisez la commande chmod et les autorisations de lecture et d'écriture seront retirées.
chmod go-rw sneakers.txt |
En entrant go-rw, vous demandez au système d'enlever les autorisations de lecture et d'écriture du fichier sneakers.txt pour le groupe ainsi que pour les autres utilisateurs.
Le résultat de cette commande ressemblera à l'extrait ci-dessous:
-rw------- 1 sam sam 150 Mar 19 08:08 sneakers.txt |
Considérez ces paramètres comme une forme de sténographie que vous pouvez utiliser pour modifier les autorisations d'accès aux fichiers à l'aide de la commande chmod; il vous suffit en effet de vous souvenir de quelques symboles et lettres à ajouter à la commande chmod.
Ci-dessous figure une liste des options abrégées et leur signification:
u — l'utilisateur qui possède le fichier (c'est-à-dire le propriétaire)
g — le groupe auquel appartient l'utilisateur
o — autres, de l'anglais 'others' (ni le propriétaire, ni le groupe du propriétaire)
a — chacun ou tous, de l'anglais 'all' (u, g, et o)
r — autorisation de lecture (de l'anglais 'read')
w — autorisation d'écriture (de l'anglais 'write')
x — autorisation d'exécution (de l'anglais 'execute')
+ — ajoute l'autorisation
- — supprime l'autorisation
= — fait en sorte qu'il s'agisse de l'unique autorisation
Voulez-vous tester vos connaissances en matière d'autorisations? Essayez de supprimer toutes les autorisations du fichier sneakers.txt — et ce, pour tout le monde.
chmod a-rwx sneakers.txt |
Maintenant, vérifiez s'il vous est possible de lire le fichier en utilisant la commande cat sneakers.txt; cette dernière devrait renvoyer la sortie suivante:
cat: sneakers.txt: Permission denied |
En supprimant toutes les autorisations, y compris la vôtre, vous êtes parvenu à verrouiller le fichier. Mais puisque le fichier vous appartient, il vous est toujours possible de restaurer les autorisations initiales à l'aide de la commande suivante:
chmod u+rw sneakers.txt |
À l'aide de la commande cat sneakers.txt vérifiez que le propriétaire du fichier est bien en mesure de lire à nouveau son fichier.
Ci-dessous figurent quelques exemples courants de paramètres qui peuvent être utilisés avec chmod:
g+w — ajoute l'accès en écriture pour le groupe
o-rwx — supprime toutes les autorisations pour les autres utilisateurs
u+x — autorise le propriétaire du fichier à exécuter ce dernier
a+rw — autorise quiconque à lire et modifier le fichier
ug+r — autorise le propriétaire et le groupe à lire le fichier
g=rx — autorise seulement le groupe à lire et exécuter le fichier (mais pas à le modifier)
En ajoutant l'option -R, vous pouvez modifier les autorisations pour des arborescences entières de répertoires.
Toutefois, étant donné qu'il n'est pas vraiment possible "d'exécuter" un répertoire comme on exécute une application, lorsque vous ajoutez ou supprimez une autorisation d'exécution pour un répertoire, vous accordez ou refusez en réalité la permission d'exécuter une recherche dans ce répertoire.
Si vous n'accordez pas l'autorisation d'exécution aux autres utilisateurs pour le fichier tigger, l'attribution ou le refus de l'autorisation de lecture ou d'écriture n'a pas vraiment d'importance. En effet, ils ne pourront de toute façon pas entrer dans le répertoire, sauf s'ils connaissent le nom exact du fichier recherché.
Tapez par exemple:
chmod a-x tigger |
pour retirer l'autorisation d'exécution à tout le monde.
Voici maintenant ce qui se passe lorsque vous essayez d'utiliser la commande cd pour accéder à tigger:
bash: tigger: Permission denied |
Restaurez ensuite l'accès pour vous et votre groupe:
chmod ug+x tigger |
Si vous vérifiez maintenant le résultat au moyen de ls -l, vous vous apercevrez que seuls les "autres" utilisateurs se voient refuser l'accès au répertoire tigger.
Vous vous souvenez certainement de notre analogie à la méthode de sténographie de chmod. Cette partie traite d'une autre manière de modifier les autorisations facilement, bien qu'à première vue, la procédure semble peut-être un peu complexe.
Revenez aux autorisations initiales du fichier sneakers.txt:
-rw-rw-r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt |
Chaque paramètre d'autorisation peut être représenté par une valeur numérique:
r = 4
w = 2
x = 1
- = 0
Lorsque ces valeurs sont additionnées, le total est utilisé pour définir des autorisations précises. Par exemple, si vous voulez des autorisations en lecture et écriture, vous aurez une valeur de 6; 4 (r: lecture) + 2 (w: écriture) = 6.
Tels sont les paramètres des autorisations numériques du fichier sneakers.txt:
- (rw-) (rw-) (r--) | | | 4+2+0 4+2+0 4+0+0 |
Le total pour l'utilisateur est six, celui pour le groupe est six et le total pour les autres est quatre. Le paramètre des autorisations donc lu comme 664.
Si vous souhaitez apporter des modifications aux autorisation du fichier sneakers.txt afin que les utilisateurs de votre groupe n'aient pas un accès en écriture, mais puissent tout de même le lire, il suffit de supprimer cet accès en soustrayant deux (2) à cet ensemble de chiffres.
Les valeurs numériques deviendraient alors six, quatre et quatre (644).
Pour appliquer ces nouveaux paramètres, tapez:
chmod 644 sneakers.txt |
Vérifiez maintenant ces changements en listant le fichier. Pour ce faire, tapez:
ls -l sneakers.txt |
La sortie suivante devrait s'afficher:
-rw-r--r-- 1 sam sam 150 Mar 19 08:08 sneakers.txt |
Maintenant, ni le groupe, ni les autres utilisateurs ne bénéficient d'une autorisation en écriture pour le fichier sneakers.txt. Pour restaurer l'autorisation en écriture du groupe pour ce fichier, ajoutez la valeur w (2) au deuxième ensemble d'autorisations.
chmod 664 sneakers.txt |
![]() | Avertissement |
---|---|
En donnant aux autorisations la valeur 666, vous autoriserez tout le monde à lire ainsi qu'à modifier un fichier ou un répertoire. Avec la valeur 777, tout le monde pourra lire, modifier et exécuter un fichier ou un répertoire. Ces autorisations peuvent provoquer la manipulation volontaire ou involontaire de fichiers importants; il est donc généralement déconseillé de les utiliser. |
Ci-après figure une liste de certains paramètres courants, de valeurs numériques et de leur signification:
-rw------- (600) — Seul le propriétaire a les autorisations de lecture et d'écriture.
-rw-r--r-- (644) — Seul le propriétaire a les autorisations de lecture et d'écriture; le groupe et les autres utilisateurs ont uniquement un accès en lecture.
-rwx------ (700) — Seul le propriétaire a les autorisations de lecture, d'écriture et d'exécution.
-rwxr-xr-x (755) — Le propriétaire a les autorisations de lecture, d'écriture et d'exécution; le groupe et les autres utilisateurs ont uniquement l'accès en lecture et en exécution.
-rwx--x--x (711) — Le propriétaire a les autorisations de lecture, d'écriture et d'exécution; le groupe et les autres utilisateurs ont uniquement l'accès en exécution.
-rw-rw-rw- (666) — Tout le monde peut lire et modifier le fichier. (Utilisez ces autorisations avec prudence.)
-rwxrwxrwx (777) — Tout le monde peut lire, modifier et exécuter le fichier. (Au risque de nous répéter, il peut être très risqué d'utiliser ce type d'autorisation.)
Ci-dessous figurent quelques paramètres courants pour les répertoires:
drwx------ (700) — Seul l'utilisateur peut lire et apporter des modifications dans ce répertoire.
drwxr-xr-x (755) — Tout le monde peut lire le contenu du répertoire; les utilisateurs et les groupes ont les autorisations de lecture et d'exécution.
Précédent | Sommaire | Suivant |
Utilisation de commandes multiples | Niveau supérieur | Gestion des fichiers et répertoires |