next up previous contents Next: udev Up: devfs Previous: Attribution et modifications des   Table des matières  

19.7.3 Modifications des droits avec PAM.

PAM signifie Pluggable Authentification Modules. Etant donné que PAM a la priorité en termes d'enregistrement de droits, la modification des droits avec PAM l'emporte sur la methode décrite à la sous-section 19.7.2. PAM utilise le fichier /etc/security/console.perms pour gérer les droits. La première partie de ce fichier décrit les groupes et la seconde les droits. Voici un exemple de fichier /etc/security/console.perms:

# /etc/security/console.perms  
#  
# This file determines the permissions that will be given to priviledged # users of the console at login time, and the permissions to which to  
# revert when the users log out. 
 
# format is:  
#  <class>=list of regexps specifying consoles or globs specifying files  
#  file-glob|<class> perm dev-regex|<dev-class> \  
#   revert-mode revert-owner[.revert-group]  
# the revert-mode, revert-owner, and revert-group are optional, and default # to 0600, root, and root, respectively.  
#  
# For more information:  
# man 5 console.perms 
 
# file classes - these are regular expressions  
<console>=tty[0-9][0-9]* vc/[0-9][0-9]* :[0-9]\.[0-9] :[0-9] <xconsole>=:[0-9]\.[0-9] :[0-9] 
 
# device classes - these are shell-style globs  
<serial>=/dev/ttyS*  
<floppy>=/dev/fd[0-1]* \  
         /dev/floppy/* /mnt/floppy*  
<sound>=/dev/dsp* /dev/audio* /dev/midi* \  
        /dev/mixer* /dev/sequencer* \  
        /dev/sound/* /dev/snd/* /dev/beep \  
        /dev/admm* \  
        /dev/adsp* /dev/aload* /dev/amidi* /dev/dmfm* \  
        /dev/dmmidi* /dev/sndstat  
<cdrom>=/dev/cdrom* /dev/rdvd /dev/ide/*/*/*/*/cd /dev/scsi/*/*/*/*/cd \  
        /dev/cdroms/* /dev/cdwriter* /mnt/cdrom*  
<pilot>=/dev/pilot < 
jaz>=/mnt/jaz*  
<zip>=/mnt/pocketzip* /mnt/zip* <ls120>=/dev/ls120 /mnt/ls120*  
<scanner>=/dev/scanner /dev/usb/scanner*  
<rio500>=/dev/usb/rio500  
<camera>=/mnt/camera* /dev/usb/dc2xx* /dev/usb/mdc800*  
<memstick>=/mnt/memstick*  
<flash>=/mnt/flash*  
<diskonkey>=/mnt/diskonkey*  
<rem_ide>=/mnt/microdrive*  
<fb>=/dev/fb /dev/fb[0-9]* \  
     /dev/fb/* <kbd>=/dev/kbd  
<joystick>=/dev/js[0-9]*  
<v4l>=/dev/video* /dev/radio* /dev/winradio* /dev/vtx* /dev/vbi* \  
      /dev/video/* /dev/vttuner  
<gpm>=/dev/gpmctl  
<dri>=/dev/nvidia* /dev/3dfx*  
<mainboard>=/dev/apm_bios  
<burner>=/dev/scd* /dev/sg* /dev/pcd* /dev/pg* /dev/cdwriter /dev/scsi/*/*/*/*/generic  
<usb>=/dev/usb/dabusb* /dev/usb/mdc800* /dev/usb/rio500 /dev/ttyUSB* \  
      /proc/usb/[0-9][0-9][0-9]/[0-9][0-9][0-9] 

# permission definitions  
<console> 0660 <serial> 0660 root.tty  
<console> 0660 <floppy> 0660 root.floppy  
<console> 0600 <sound> 0600 root.audio  
<console> 0600 <cdrom> 0660 root.cdrom  
<console> 0600 <pilot> 0660 root.uucp  
<console> 0600 <jaz> 0660 root.disk  
<console> 0600 <zip> 0660 root.disk  
<console> 0600 <ls120> 0660 root.disk  
<console> 0600 <scanner> 0600 root 
<console> 0600 <camera> 0600 root  
<console> 0600 <memstick> 0600 root  
<console> 0600 <flash> 0600 root  
<console> 0600 <diskonkey> 0660 root.disk  
<console> 0600 <rem_ide> 0660 root.disk  
<console> 0600 <fb> 0600 root

<console> 0600 <kbd> 0600 root  
<console> 0600 <joystick> 0600 root  
<console> 0600 <v4l> 0600 root.sys  
<console> 0700 <gpm> 0700 root  
<console> 0600 <mainboard> 0600 root  
<console> 0660 <burner> 0660 root.cdrw

<console> 0600 <usb> 0660 root.usb

<console> 0600 <rio500> 0600 root 
 
<xconsole> 0600 /dev/console 0600 root.root  
<xconsole> 0600 <dri> 0600 root 



Concernant les groupes de périphériques, prenons l'exemple du groupe cdrom:

<cdrom>=/dev/cdrom* /dev/rdvd /dev/ide/*/*/*/*/cd /dev/scsi/*/*/*/*/cd \  
        /dev/cdroms/* /dev/cdwriter* /mnt/cdrom*  


La syntaxe indique d'abord le groupe (<cdrom>) et la liste des périphériques (/dev/cdrom* ... /mnt/cdrom*) qui appartiennent à ce groupe. La seconde partie indique comment les groupes décrits dans la première partie du fichier fonctionnent en termes de droits:

<console> 0600 <cdrom> 0660 root.cdrom 


Le premier champ représente le contrôle du terminal. De manière générale, il s'agit du groupe <console>. PAM vérifie ce paramètre lors de chaque connexion sur le système. Si la connexion a lieu sur le périphérique appartenant au groupe <console>, PAM vérifie et modifie les droits de certains fichiers périphériques.

Le second champ reprend les droits attribuées aux fichiers de périphérique lors d'une connexion réussie. Quand un utilisateur se connecte au système et que les fichiers périphériques appartiennent au propriétaire ou au groupe par défaut, PAM enregistre l'utilisateur connecté comme s'il s'agissait du propriétaire. PAM attribue les droits décrits dans le deuxième champ. Dans ce cas, 0600 est employé: l'utilisateur a le droit d'accès en lecture et en écriture, à l'exclusion de tout autre utilisateur.

Le troisième champ contient le groupe de périphériques auquel les droits sont conférés. En l'occurrence, pour le groupe <cdrom>, tous les fichiers de périphériques relatifs au lecteur de CD-ROMs sont modifiés.

Le quatrième champ définit les droits associés au fichier périphérique après retour à l'état par défaut: si le propriétaire des fichiers de périphérique se déconnecte, PAM modifie alors les droits pour reprendre les droits de l'état par défaut, tels que décrits dans ce quatrième champ.

Le cinquième champ définit la propriété (avec le groupe, le cas échéant) donnée aux attributs du périphérique après le retour dans l'état par défaut: si le propriétaire des fichiers de périphériques se déconnecte, PAM remet le propriétaire précédent correspondant à l'état par défaut tel que décrit dans ce cinquième champ.


next up previous contents Next: udev Up: devfs Previous: Attribution et modifications des   Table des matières  
1-01-2006