Propri�t� et autorisations

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.

TuyauVotre groupe par d�faut
 

N'oubliez pas que, par d�faut, votre groupe �tait le nom de connexion choisi.

Figure 15-16. Autorisations pour tennis.txt

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�:

Au-del� du premier �l�ment, nous verrons l'un des caract�res ci-dessous dans les trois ensembles suivants�:

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]$
	  

Figure 15-17. Pr�sentation d�taill�e des autorisations

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--).

AttentionDes 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).

Figure 15-18. Changement d'autorisations pour tennis.txt

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]$
	  

Figure 15-19. Retrait et restauration d'autorisations

Voici quelques exemples courants de param�tres pouvant �tre utilis�s avec chmod�:

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".