Red Hat Linux 7.0: Le Guide officiel de démarrage Red Hat Linux | ||
---|---|---|
Précédent | Chapitre 15. Vous êtes ici | Suivant |
Plus haut dans ce chapitre, lorsque nous avons essayé d'utiliser cd pour passer dans le répertoire de connexion root, nous avons reçu le message suivant :
[newuser@localhost newuser]$ cd /root bash: /root: Permission denied [newuser@localhost newuser]$ |
Il s'agissait d'un exemple des fonctions de sécurité de Linux. Linux, comme UNIX, est un système multi-utilisateur et les autorisations d'accès aux fichiers permettent au système de garantir une protection contre toute mauvaise manipulation, malveillante ou accidentelle.
Si l'autorisation d'accès nous est refusée, nous pouvons exécuter la commande su pour acquérir le statut root, comme nous l'avons vu précédemment. Car toute personne connaissant le mot de passe root bénéficie d'un accès total.
[newuser@localhost newuser]$ su Password: votre-mot-de-passe-root [root@localhost newuser]# cd /root [root@localhost /root]# |
Le passage au statut de superutilisateur n'est cependant pas toujours pratique ou judicieux car il est si facile d'endommager par erreur des fichiers de configuration importants.
Tous les fichiers et répertoires sont la "propriété" de la personne qui les a créés. Nous avons créé le fichier tennis.txt (dans notre répertoire de connexion), par conséquent, tennis.txt nous "appartient".
Cela signifie que nous pouvons spécifier qui est autorisé à lire le fichier, à écrire dans le fichier ou, s'il s'agit plutôt d'une application que d'un fichier texte, à exécuter le fichier.
La lecture, l'écriture et l'exécution constituent les trois paramètres principaux des autorisations.
Tous les utilisateurs du système étant placé à leur création dans un groupe, nous pouvons également spécifier si certains groupes disposent de droits de lecture, d'écriture ou d'exécution.
Examinons de plus près le fichier tennis.txt avec la commande ls et l'option (long) -l (voir la Figure 15-16).
[newuser@localhost newuser]$ ls -l tennis.txt -rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 tennis.txt |
Un certain nombre de détails sont présents ici. Nous pouvons voir qui peut lire (r) et écrire sur le fichier (w), de même que la personne qui l'a créé (newuser) et le groupe auquel son propriétaire (newuser) appartient.
Votre groupe par défaut | |
---|---|
N'oubliez pas que, par défaut, votre groupe était le nom de connexion choisi. |
Les autres informations figurant à droite du groupe incluent le nom du fichier, la date et l'heure de sa création ainsi que sa taille.
Comment tous ces tirets et caractères sont-ils organisés ? Ce n'est pas aussi compliqué qu'il n'y paraît. Passons à une analyse plus détaillée :
-rw-rw-r-- |
Cette colonne comporte dix emplacements. Le premier représente le type de fichier. Les neuf autres sont 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 le fichier appartient et "autres", c'est-à-dire les utilisateurs et les groupes autres que le propriétaire du fichier (newuser) et les membres de son groupe (également appelé newuser).
Développons un peu les paramètres de ce fichier :
- (rw-) (rw-) (r--) 1 newuser newuser | | | | type owner group others |
Le premier élément, qui spécifie le type de fichier, peut correspondre à l'un des éléments suivants :
d -- un répertoire
- -- un fichier standard (autre qu'un répertoire ou un lien)
l -- un lien symbolique vers un autre programme ou fichier du système
Au-delà du premier élément, nous verrons l'un des caractères ci-dessous dans les trois ensembles suivants :
r -- il est possible de lire le fichier
w -- il est possible d'écrire dans le fichier
x -- il est possible d'exécuter le fichier (s'il s'agit d'un programme)
Si la section propriétaire, groupe ou autres contient un tiret, cela signifie qu'une autorisation particulière n'a pas été accordée.
Examinons à nouveau la première colonne de tennis.txt et identifions les autorisations correspondantes (voir la Figure 15-17).
[newuser@localhost newuser]$ ls -l tennis.txt -rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 tennis.txt [newuser@localhost newuser]$ |
Le propriétaire du fichier, newuser, a l'autorisation de lire et de modifier le fichier ; il ne s'agit pas d'un programme, de sorte que newuser n'a pas l'autorisation de l'exécuter. Le groupe, newuser, a également l'autorisation de lire et de modifier tennis.txt. Tout comme la notation de programme pour l'utilisateur newuser, il n'y a pas d'autorisation d'exécution pour le groupe newuser.
Dans la dernière série, nous pouvons voir que ceux qui ne sont pas l'utilisateur newuser ou ne font pas partie du groupe newuser peuvent lire le fichier, mais ne peuvent ni le modifier ni l'exécuter.
Nous pouvons utiliser la commande chmod pour changer les autorisations d'un fichier.
Travaillons un peu plus sur tennis.txt afin de changer les autorisations à l'aide de la commande chmod.
Le fichier original et ses paramètres initiaux d'autorisation se présentent comme suit :
-rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 tennis.txt |
Tant que nous sommes les propriétaires du fichier -- ou que nous sommes connectés au compte root -- nous pouvons changer les autorisations en combinant librement les paramètres utilisateur, groupe et autres.
Désormais, le propriétaire (à savoir nous) et notre groupe (newuser) peuvent lire et modifier le fichier.
Toute personne extérieure à notre groupe ne pourra lire que le fichier (r--).
Des autorisations sont nécessaires | |
---|---|
N'oubliez pas que les autorisations d'accès au fichier constituent une fonction de sécurité. Chaque fois que vous accordez des droits de lecture, d'écriture et d'exécution, vous augmentez le risque de mauvaise manipulation. En règle générale, il vaut mieux éviter d'autoriser le reste du monde à lire ou à écrire dans vos fichiers. |
Dans ce cas toutefois, disons que nous voulons autoriser tout utilisateur à écrire dans le fichier pour qu'il puisse le lire, l'annoter et le sauvegarder. Cela signifie que nous devrons changer la section "autres" des autorisations d'accès au fichier.
Comme nous sommes les propriétaires du fichier, nous n'avons pas besoin pour cela d'exécuter la commande su pour acquérir le statut root. Commençons par regarder le fichier. A l'invite du shell, entrez :
ls -l tennis.txt |
ce qui nous donne les informations suivantes sur le fichier :
-rw-rw-r-- 1 newuser newuser 150 Mar 19 08:08 tennis.txt |
Entrez maintenant :
chmod o+w tennis.txt |
Pour vérifier les résultats, nous pouvons de nouveau afficher la liste détaillée du fichier. Ce dernier se présente désormais comme suit :
-rw-rw-rw- 1 newuser newuser 150 Mar 19 08:08 tennis.txt |
Voici le résultat : tout le monde peut désormais lire et écrire dans le fichier (Figure 15-18).
En entrant o+w, nous avons déclaré "pour la section autres, ajouter l'autorisation d'écriture au fichier tennis.txt."
Si nous voulons supprimer les autorisations d'accès en lecture et écriture au fichier tennis.txt (bien qu'il ne s'agisse que d'une liste de courses sommaire), nous pouvons utiliser la commande chmod pour supprimer les autorisations de lecture et d'écriture de la manière suivante :
chmod go-rw tennis.txt |
et le résultat sera :
-rw------- 1 newuser newuser 150 Mar 19 08:08 tennis.txt |
En entrant go-rw, nous avons déclaré "pour le groupe et pour les autres, retirer les autorisations de lecture et d'écriture pour le fichier tennis.txt."
Vous pouvez considérer ces paramètres comme une sorte de sténographie que vous pouvez utiliser pour changer des autorisations avec chmod ; en effet, tout ce que vous avez à faire, c'est de vous souvenir de quelques symboles et lettres avec la commande chmod.
Voici une liste de ce que cette sténographie représente :
Identités
u -- l'utilisateur qui possède le fichier (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 en lecture
w -- accès en écriture
x -- accès en exécution
Actions
+ -- ajoute l'autorisation
- -- retire l'autorisation
= -- en fait l'autorisation unique
Voulez-vous faire un essai ? Retirons à tout le monde toutes les autorisations pour le fichier tennis.txt.
chmod a-rw tennis.txt |
Maintenant, vérifions si nous pouvons lire le fichier :
[newuser@localhost newuser]$ cat tennis.txt cat: tennis.txt: Permission denied [newuser@localhost newuser]$ |
Nous pouvions nous douter que ça marcherait ; nous ne pouvons même pas accéder au fichier. Mais puisque le fichier nous appartient, nous pouvons toujours modifier ses autorisations pour nous octroyer l'accès en lecture et écriture (voir la Figure 15-19).
[newuser@localhost newuser]$ chmod u+rw tennis.txt [newuser@localhost newuser]$ cat tennis.txt acheter des tennis puis aller à la boutique de café puis acheter du café puis ramener le café à la maison enlever les chaussures mettre les tennis faire du café souffler ! [newuser@localhost newuser]$ |
Voici quelques exemples courants de paramètres pouvant être utilisés avec chmod :
g+w -- ajoute un accès en écriture pour le groupe
o-rw -- retire toutes les autorisations pour les autres
u+x -- autorise le propriétaire du fichier à exécuter ce dernier
a+rw -- autorise tout le monde à lire et à écrire dans le fichier
ug+r -- autorise le propriétaire et le groupe à lire le fichier
g=rx -- autorise le groupe à lire et à exécuter seulement (et pas à écrire)
En ajoutant l'option R, nous pouvons changer les autorisations pour les arborescences complètes de répertoires.
Il y a un léger hic quand même car ne nous pouvons pas vraiment "exécuter" un répertoire comme une application. A la place, lorsque nous ajoutons ou retirons une autorisation d'exécution pour un répertoire, nous accordons ou refusons l'autorisation de rechercher dans ce répertoire.
Pour permettre à tout le monde de lire et d'écrire dans le répertoire tigger dans notre répertoire de connexion, il suffit d'entrer :
chmod -R a+rw tigger |
En revanche…, si nous n'autorisons pas d'autres utilisateurs à exécuter la commande tigger, peu importe qui dispose d'un accès en lecture ou en écriture car personne ne pourra accéder au répertoire, à moins de connaître exactement le nom du fichier recherché.
Entrons par exemple :
chmod a-x tigger |
pour retirer l'autorisation d'exécution à tout le monde.
Voici ce qui se passe maintenant lorsque nous essayons d'utiliser la commande cd pour accéder à tigger :
[newuser@localhost newuser]$ cd tigger bash: tigger: Permission denied [newuser@localhost newuser]$ |
Restaurons nos autorisations et celles de notre groupe.
chmod ug+x tigger |
Si nous vérifions le résultat à l'aide de ls -dl, nous verrons que l'accès à tigger ne sera refusé qu'aux "autres".
Précédent | Sommaire | Suivant |
Enchaînement de commandes | Niveau supérieur | Paramètres numériques de chmod |