[Précédent (date)] [Suivant (date)] [Précédent (sujet)] [Suivant (sujet)] [Index par date] [Index par sujet]

Permission accordée



Je ne connais pas grand-chose à Linux, je l'ai dit. Toutefois, 
comme j'ai un site depuis près de cinq ans, je tente ici d'écrire 
le début d'un chapitre sur les permissions.

------------

Les permissions
¯¯¯¯¯¯¯¯¯¯¯¯¯

Il y a trois »catégories« de personnes qui ont des droits sur les 
fichiers et les répertoires: 
«u»ser, «g»roup et «o»thers, qu'on retient facilement avec l'acronyme «ugo»

«u»ser: C'est la personne qui possède le fichier (ou le répertoire, 
qui n'est qu'un fichier de noms de fichiers). On dit souvent «owner»... 
mais le «o» servait déjà pour «other» ;-)

«g»roup: Le groupe est défini par le «user». 
Cette catégorie permet de définir un groupe de personnes à qui 
on veut donner un plus grand accès aux fichiers. Cette catégorie est 
inutile pour l'usager normal qui n'a pas défini de groupe. On 
donne habituellement les mêmes permissions qu'à «others».

«o»thers: On dit souvent «world» pour «others». Ce sont les permissions 
pour tous, tous les visiteurs d'un site web, par exemple.


Les permissions qui peuvent être accordées à chacune de ces catégories 
sont les suivantes:
«r»ead, «w»rite, «x»ecute

«r»ead permet de lire le fichier, de voir son contenu. Pour un 
répertoire, le contenu, c'est la liste de fichiers. Si la permission 
est accordée, «ls» donne la liste des fichiers.

«w»rite permet de d'écrire dans le fichier, de le modifier. Pour 
un répertoire, «w» permet d'ajouter des fichiers au répertoire ou 
de les effacer.

«x»ecute permet d'exécuter les fichiers exécutables. Pour un répertoire, «x» 
donne l'accès au répertoire. On ne peut faire un «cd» sur un répertoire 
qui n'a pas la permission «x».

Les permissions sur les fichiers se changent avec la commande chmod.
(Ici, un beau lien <A HREF="chmod.html"> vers plus d'explications.


Exemple:
¯¯¯¯¯¯¯

Vous avez un site internet et vous voulez que tout le monde voie vos 
fichiers sans pouvoir les modifier ou en ajouter.


Fichiers:

Vous pouvez vous donner toutes les permissions, mais le «x» ne 
vous servira pas pour des fichiers html, qui ne sont pas exécutables. 
Pour les groupes, donnez,comme pour «others», «r» seulement. 
Ainsi, tous peuvent lire vos fichiers -- voir vos pages, si vous 
préférez -- si vous donnez accès au répertoire (voir ici-bas). 


Voici un exemple permissions typiques sur un fichier html:

-rw-r--r--    27975 Jun  5 20:39 aerop.html

Le premier « - » indique qu'il s'agit d'un fichier et non d'un répertoire.

 u               g               o

rw-             r--             r--


Répertoires:

Pour lire un fichier, il faut aussi avoir les bonnes permissions sur 
le répertoire. Le «user» (vous) doit les avoir toutes:  rwx. 
Donnez à «group», la même permission que «others»: r-x. 
Pourquoi ce «r-x»?

Le «x» donne accès au répertoire, il permet au serveur de faire 
un « cd /~nom_d'usager ». Sans la permission «x», l'accès de 
votre site sera interdit au visiteur. Même s'il a la permission 
«r» pour être lu, le serveur n'y aura pas accès.  

Étant donné que les sites comportent habituellement un index avec 
des liens html vers les fichiers, qu'on n'a pas à cliquer sur des 
noms de fichiers comme dans un site ftp, on pourrait même se passer 
de la permission «r». Toutefois, pour des raisons de sécurité trop 
longues à expliquer ici, on accorde habituellement la permission 
«r» en plus du «x».(1)

Voici un exemple de permissions typiques sur un répertoire de fichiers html:

drwxr-xr-x           512 Jun     5 20:36     icones

Le «d» indique que c'est un répertoire.

  u              g               o

rwx             r-x             r-x


Apprenez en plus!

(Fin temporaire du document)

-----------

Pour les experts, une question à laquelle je ne puis répondre:

(1)  Si un répertoire a l'attribut «x» mais pas «r» et que ses noms 
de fichiers sont connus -- ce qui est évidemment le cas pour un 
site web -- il est apparemment possible d'effacer ses fichiers. Comment?

------------

J'ai faudrait ajouter des liens html, sur «group». par exemple.
Sur cette page, on pourrait aborder les sujets suivants: qui définit 
le groupe dans le répertoire principal de l'usager, dans les 
sous-répertoires; la commande chown, etc.

Dans le lien sur chmod: comment utliser la commande quand on 
n'utilise pas un logiciel FTP? a = ugo, les chiffres (0 à 7) 
plutôt que les lettres, etc.

Dans le lien «Apprenez en plus», il pourrait y avoir: Set-Gid Bit, 
Sticky Bit, Locking Bit (System V), etc.


Évidemment, ce chapitre ne serait pas le premier. Il s'inscrit 
dans une démarche: installer un system Linux. L'apprenti-usager 
aurait d'abord fait quelques «ls», il saurait la différence entre 
un répertoire et un fichier! De plus, on pourrait «faire» les 
exemples: demander à l'usager de créer un fichier html 
(style: <H1>Je m'appelle Toto</H1>), 
lui faire chmoder le répertoire et le fichier, et lui faire 
constater ce qui se passe.

J'espère qu'on va bientôt cesser de me dire qu'il est impossible 
de donner rapidement une connaissance de base du système Linux, 
que la seule approche valable pour appréhender Linux est de lire 
des HOWTO, des man pages et des FAQs pendant des années. 

On peut expliquer à un newbie la base des permissions ou comment 
compiler un exécutable avec la librairie appropriée. Ça prend un 
peu de temps, mais c'est bien moins long que de répondre aux mille 
questions de mille newbies.

Peut-être des gens plus connaissants que moi m'indiqueront-ils des 
erreurs ou une meilleure façon d'expliquer les choses. J'espère 
seulement avoir réussi à donner un vague perçu de ce projet où 
chacun pourrait approfondir sa matière en l'expliquant.

Le «livre», ou plutôt, le fichier html dont je rêve, aurait beau 
être là, sur les tablettes de Camelot -- made in USA and skrink-wrapped 
with a 20$ mail-in rebate -- ça ne me semblerait jamais aussi 
intéressant que de l'écrire ensemble.


Gilles Pelletier