Allowing users to
invoke HAL methods
Le paramétrage par défaut de HAL consiste à n'autoriser que certains
utilisateurs à appeler des méthodes telles que Mount(). Il
s'agit de l'utilisateur root
et
de l'utilisateur défini comme étant la console active en
utilisant pam_console.
Si vous n'êtes pas paramétré pour utiliser Linux-PAM-1.1.5 et pam_console,
créez un groupe qui est autorisé à appeler des méthodes
HAL avec les commandes
suivantes :
groupadd -fg 61 halusers &&
cat > /etc/dbus-1/system.d/halusers.conf << "EOF"
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<!-- Permet aux utilisateurs du groupe halusers d'appeler des méthodes HAL -->
<policy group="halusers">
<allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/>
<allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/>
<allow send_interface="org.freedesktop.Hal.Device.Volume"/>
<allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/>
</policy>
</busconfig>
EOF
Maintenant ajoutez au groupe halusers
les utilisateurs dont vous
aimeriez qu'ils puissent utiliser HAL.
usermod -a -G halusers <username>
Remarquez que ces utilisateurs doivent aussi avoir les droits
adéquats pour accéder aux périphériques qu'appellera
HAL par ses méthodes.
Quand la configuration ci-dessus est opérationnelle, les
utilisateurs autorisés ont la possibilité de démonter des
partitions de disque montées à des endroits non standards tels
que /pub
. Si restreindre cette
autorisation aux seuls lecteurs considérés comme amovibles
oubranchables à chaud, ajoutez le fichier de configuration
suivant en tant qu'utilisateur root
:
cat > /etc/hal/fdi/policy/no-fixed-drives.fdi << "EOF"
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<!-- N'autorise pas de méthodes HAL sur les disques non amovibles ou
branchables à chaud -->
<deviceinfo version="0.2">
<device>
<match key="@block.storage_device:storage.hotpluggable" bool="false">
<match key="@block.storage_device:storage.removable" bool="false">
<merge key="volume.ignore" type="bool">true</merge>
</match>
</match>
</device>
</deviceinfo>
EOF
Modifier les options
de montage par défaut
Dans certains cas, il est nécessaire de spécifier quelques
options de montage pour des systèmes de fichiers. Ainsi dans
des environnements non anglais, les options iocharset
et codepage
sont nécessaires pour les systèmes de
fichiers d'origine Windows pour afficher correctement les
caractères nationaux. De même, du fait d'un bogue dans la
version du noyau Linux de LFS (2.6.22.x), il se peut que vous
vouliez passer l'option usefree
aux
systèmes de fichiers vfat afin de réduire le temps nécessaire
pour déterminer l'espace disponible sur le système de fichiers.
Une recherche Google de « hal default
mount options » donne pleins de recommendations
utiles pour créer des fichiers *.fdi
mentionnant soit les clés volume.policy
soit storage.policy
. Ces recommendations ne
fonctionnaient que pour HAL-0.4.x et elles sont à présent
invalides. Pour For HAL-0.5.14, il est attendu que les options
de montage soient gérées comme suit :
-
Un gestionnaire d'événements d'un environnement de bureau
reçoit un événement décrivant le périphérique de stockage
nouvellement ajouté.
-
Si le périphérique de stockage n'est pas déjà mentionné
dans /etc/fstab
, les
options de montage sont récupérées à partir d'une base de
données des préférences de l'utilisateur spécifique à
l'environnement de bureau et transmise à HAL. Ce
processus peut être modifié par le type de système de
fichiers et et éventuellement par d'autres propriétés de
volume disponibles sur HAL.
-
Si les options font partie de celles autorisées, HAL
monte le volume.
L'élément important ci-dessus est que la procédure de
configuration ci-dessus est spécifique au bureau. Cependant,
depuis décembre 2007, seul GNOME permet à l'utilisateur de
paramétrer des options de montage par défaut sur une base par
fichiers, comme décrit au prochain paragraphe. KDE ne permet
des options de montage que psur la base des volumes et non des
systèmes de fichiers, ce qui est un bogue, car,
comme indiqué dans le rapport, « pour
tout nouveau périphérique, (disons la clé USB de votre ami),
vous devez d'abord ne pas le monter puis modifier les options
et ensuite le monter ». Xfce, est compilé avec le
support de HAL, hard-codes
les options de montage non significatives pour les écraser, ce
qui est même pire. Dans KDE et Xfce, si les options de montage
intégrées par défaut ne conviennent pas, il faut indiquer tout
périphérique de stockage amovible dans /etc/fstab
avec les bonnes options, ce qui en
général contourne ainsi le problème de HAL.
Pour ajuster les options de montage par défaut, les
utilisateurs de GNOME devraient modifier la clé GConf
/system/storage/default_options/[fs_type]/mount_options
en utilisant soit GConf
Editor-2.30.0, soit à partir de la ligne de commande, comme
indiqué dans l'exemple suivant :
gconftool-2 --type list --list-type=string \
--set /system/storage/default_options/vfat/mount_options \
"[shortname=mixed,uid=,usefree,iocharset=koi8-r,codepage=866]"
Voir plus de détails dans la page de manuel gnome-mount(1).
Ajouter des options
de montage autorisées
La liste des options de montage autorisçes dans la
configuration de HAP par défaut se trouve dans fichier
/usr/share/hal/fdi/policy/10osvendor/20-storage-methods.fdi
.
Il se peut que les utilisateurs de GNOME et de KDE veuillent
utiliser des options hors de cette liste (cela vaut dans
l'exemple ci-dessus pour l'option usefree
). Dans ce cas, en tant qu'utilisateur
root
, créez un fichier de
règles personnalisé indiquant des options de montage
inconnues :
cat > /etc/hal/fdi/policy/user-options.fdi << "EOF"
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
<!--
Ce fichier est utilisé pour paramétrer des options personnalisées pour
les paramètres des règles de HAL
Les règles par défaut sont définies dans les fichiers contenus dans les
sous-répertoires /usr/share/hal/fdi/policy. Les personnalisations
définies par l'utilisateur devraient se trouver dans les fichiers contenus dans
le répertoire /etc/hal/fdi/policy.
-->
<deviceinfo version="0.2">
<device>
<!-- ceci pour pouvoir monter des médias dans des lecteurs fixes, comme
des lecteurs ZIP IDE et des lecteurs de disquettes de PCs -->
<match key="storage.media_check_enabled" bool="false">
<match key="storage.no_partitions_hint" bool="true">
<append key="volume.mount.valid_options" type="strlist">usefree</append>
<!-- Insert other options here -->
</match>
</match>
<match key="volume.fsusage" string="filesystem">
<!-- permettre ces options de montage pour vfat -->
<match key="volume.fstype" string="vfat">
<append key="volume.mount.valid_options" type="strlist">usefree</append>
<!-- Insérez ici d'autres options -->
</match>
</match>
</device>
</deviceinfo>
EOF