Red Hat Linux 7.1: Guide de démarrage officiel Red Hat Linux | ||
---|---|---|
Précédent | Chapitre 10. Eléments de base de l'invite du shell | Suivant |
Précédemment dans ce chapitre, lorsque vous avez utilisé la commande cd pour accéder au répertoire de connexion root, vous avez reçu le message suivant :
[newuser@localhost newuser]$ cd /root bash: /root: Permission denied [newuser@localhost newuser]$ |
Il s'agissait d'un exemple des mesures de sécurité de Linux. Linux, tout comme UNIX, est un système multi-utilisateurs et les autorisations d'accès aux fichiers constituent l'une de ses façons de se protéger contre les manipulations de toute sorte.
L'unique manière d'y accéder lorsque l'autorisation vous est refusée est d'utiliser la commande su pour vous connecter comme root, comme nous l'avons vu précédemment car toute personne connaissant le mot de passe root jouit d'un accès complet.
[newuser@localhost newuser]$ su Password: votre-mot-de-passe-root [root@localhost newuser]# cd /root [root@localhost /root]# |
Il n'est pas toujours pratique, ou judicieux, de travailler en tant que superutilisateur 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. Vous, par exemple, avez créé le fichier sneakers.txt (reportez-vous à la la section intitulée Utilisation de la redirection dans votre répertoire de connexion, alors le fichier sneakers.txt vous "appartient".
Cela signifie que vous pouvez décider qui est autorisé à le lire, le modifier ou, s'il s'agit d'une application et non d'un fichier texte, l'exécuter.
La lecture, la modification et l'exécution sont les trois paramètres principaux pouvant être définis dans les autorisations d'accès au fichier.
Comme les utilisateurs sont placés dans un groupe au moment de leur création, 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 (long) (voir la Figure 10-12).
[newuser@localhost newuser]$ ls -l sneakers.txt -rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
De nombreuses informations vous sont données dans cet exemple. Vous pouvez voir qui peut lire (r) et modifier (w) le fichier, ainsi que la personne qui l'a créé (newuser) et le groupe auquel elle appartient (newuser).
Votre groupe par défaut | |
---|---|
Rappelez-vous que, par défaut, votre groupe est le même que 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.
-rw-rw-r-- |
La première colonne (montrée plus haut) affiche les autorisations courantes ; 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.
Ces trois ensembles sont : le propriétaire du fichier, le groupe auquel il appartient et "autres", qui signifie les utilisateurs et les groupes autres que le propriétaire du fichier (newuser) et les membres de son groupe (qui s'appelle également newuser).
- (rw-) (rw-) (r--) 1 newuser newuser | | | | type prop. groupe autres |
Le premier élément, qui indique le type de fichier, peut correspondre à l'un des éléments suivants :
d — un répertoire
-(dash) — un fichier standard (autre qu'un répertoire ou un lien)
l — un lien symbolique vers un autre programme ou fichier situé ailleurs dans le système de fichiers
Dans les trois ensembles qui suivent le premier élément, vous verrez l'un des éléments suivants :
r — le fichier peut être lu
w — le fichier peut être modifié
x — le fichier peut être exécuté (s'il s'agit d'un programme)
Lorsque vous voyez un tiret dans les ensembles propriétaire, groupe ou autres, cela signifie qu'une autorisation spécifique n'a pas été accordée.
Regardez à nouveau la première colonne du fichier sneakers.txt et identifiez ses autorisations (voir la Figure 10-13).
[newuser@localhost newuser]$ ls -l sneakers.txt -rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt [newuser@localhost newuser]$ |
Le propriétaire du fichier (newuser dans ce cas) a l'autorisation de le lire et de le modifier. Il ne s'agit pas d'un programme, alors newuser n'a pas l'autorisation de l'exécuter. Le groupe, newuser, est également autorisé à lire et modifier sneakers.txt. Tout comme pour le propriétaire newuser, le groupe newuser n'est pas autorisé à exécuter ce fichier.
Dans le dernier ensemble, vous pouvez voir que les utilisateurs autres que newuser ou n'étant pas membre du groupe appelé newuser peuvent lire le fichier, mais ne peuvent ni le modifier ni l'exécuter.
Nous pouvons changer les autorisations de sneakers.txt avec la commande chmod.
Le fichier original et ses autorisations initiales se présentent comme suit :
-rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Si vous êtes le propriétaire de ce fichier ou ê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 autre personne ne peut que lire le fichier (r--).
Les autorisations sont nécessaires | |
---|---|
N'oubliez pas que les autorisations d'accès au fichier sont des mesures de sécurité. Chaque fois que vous accordez à quelqu'un des droits de lecture, de modification ou d'exécution, vous faites augmenter les risques que les fichiers ne soient manipulés, endommagés ou éliminés. En règle générale, il est prudent de n'accorder l'autorisation de lire et modifier des fichiers qu'à ceux 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 dans la section "autres" des autorisations d'accès au fichier.
Comme vous êtes le propriétaire du fichier, vous n'avez pas à utiliser la commande su pour vous connecter en tant que root pour le faire. Jetez d'abord un coup d'oeil au fichier. A l'invite du shell, entrez :
ls -l sneakers.txt |
Les informations suivantes sur le fichier s'affichent :
-rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Maintenant, entrez ce qui suit :
chmod o+w sneakers.txt |
Pour vérifier les résultats, faites afficher la liste des informations de nouveau. Le fichier ressemble maintenant à ceci :
-rw-rw-rw- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Tout le monde peut désormais lire et modifier le fichier (voir la Figure 10-14).
La commande o+w indique au système que vous désirez donner aux autres utilisateurs la permission de modifier le fichier sneakers.txt.
Pour enlever les autorisations de lecture et de modification du fichier sneakers.txt, utilisez la commande chmod de cette façon :
chmod go-rw sneakers.txt |
Voici à quoi ressemblera le résultat :
-rw------- 1 newuser newuser 150 Mar 19 08:08 sneakers.txt |
Lorsque vous entrez go-rw, vous indiquez au système de retirer les autorisations de lecture et de modification du fichier sneakers.txt pour le groupe et les autres utilisateurs.
Vous pourriez considérer ces paramètres comme une forme de sténographie que vous pouvez utiliser pour modifier des autorisations d'accès aux fichiers avec la commande chmod car vous n'avez qu'à vous rappeler de quelques symboles et lettres à y ajouter.
Voici une liste de la signification de cette sténo :
Identités
u — l'utilisateur à qui appartient le fichier (c'est-à-dire le propriétaire)
g — le groupe auquel appartient l'utilisateur
o — autres (ni le propriétaire, ni le groupe du propriétaire)
a — tous (u, g et o)
Autorisations
r — accès à la lecture
w — accès à la modification
x — accès à l'exécution
Actions
+ — ajoute l'autorisation
- — enlève l'autorisation
=— fait en sorte qu'il s'agisse de l'unique autorisation
Autorisation supplémentaire | |
---|---|
t est un autre symbole d'autorisation, pour le bit de rappel. Pour qu'un utilisateur puisse enlever ou renommer un fichier auquel est attaché un bit de rappel, il doit être le propriétaire du répertoire, avoir la permission de modification ou être superutilisateur (voir la la section intitulée Propriétés du fichier dans Chapitre 11). |
Voulez-vous tester vos habiletés en matière d'autorisations ? Enlevez toutes les autorisations du fichier sneakers.txt et ce, pour tout le monde.
chmod a-rwx sneakers.txt |
Maintenant, vérifiez si vous pouvez lire le fichier :
[newuser@localhost newuser]$ cat sneakers.txt cat: sneakers.txt: Permission denied [newuser@localhost newuser]$ |
Cela a fonctionné, mais puisque le fichier vous appartient, vous pouvez toujours changer ses autorisations (voir la Figure 10-15).
[newuser@localhost newuser]$ chmod u+rw sneakers.txt [newuser@localhost newuser]$ cat sneakers.txt buy some sneakers then go to the coffee shop then buy some coffee bring the coffee home take off shoes put on sneakers make some coffee relax! [newuser@localhost newuser]$ |
Voici quelques exemples courants de paramètres qui peuvent être utilisés avec chmod :
g+w — ajoute l'accès de modification pour le groupe
o-rwx — retire toutes les autorisations pour les autres utilisateurs
u+x — autorise le propriétaire du fichier à exécuter ce dernier
a+rw — autorise tout le monde à lire et modifier le fichier
ug+r — autorise le propriétaire et le groupe à lire le fichier
g=rx — autorise le groupe à lire et exécuter le fichier seulement (mais pas à le modifier)
En ajoutant l'option -R, vous pouvez changer les autorisations d'arborescences de répertoires entières.
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 enlevez une autorisation d'exécution pour un répertoire, vous accordez ou refusez en réalité la permission d'exécuter une recherche dans le répertoire.
Pour donner à tout le monde le droit de lire et de modifier tous les fichiers du répertoire tigger dans votre répertoire de connexion, entrez :
chmod -R a+rw tigger |
Toutefois… si vous n'accordez pas l'autorisation d'exécution aux autres utilisateurs pour le répertoire tigger, qu'ils aient l'accès de lecture ou de modification ne change rien car ils ne peuvent entrer dans le répertoire, à moins de connaître le nom exact du fichier recherché.
Par exemple, entrez
chmod a-x tigger |
pour retirer l'autorisation d'exécution à tout le monde.
Voici ce qui arrive maintenant lorsque vous essayez d'utiliser la commande cd pour accéder à tigger :
[newuser@localhost newuser]$ cd tigger bash: tigger: Permission denied [newuser@localhost newuser]$ |
Restaurez l'accès pour vous et votre groupe.
chmod ug+x tigger |
Si vous vérifiez votre travail au moyen de ls -dl, vous vous apercevrez que seuls les "autres" utilisateurs se voient refuser l'accès à tigger.
Précédent | Sommaire | Suivant |
Enchaînement de commandes | Niveau supérieur | Changement des autorisations par des paramètres numériques |