Vous avez une partition, par exemple /dev/sda5, que vous voulez affecter à l'utilisateur “toto” (identifiant rare en informatique ).
Vous créez le répertoire, par exemple, /home/toto/donnees:
# mkdir /home/toto/donnees
Vous assurez le montage de la partition sur ce répertoire en ajoutant une ligne dans /etc/fstab:
/dev/sda5 /home/toto/donnees ext3 acl,user_xattr 0 0
et vous faites “mount -a” en console sous root (ou vous rebootez) pour appliquer cette modif.
L'utilisateur toto essaye alors de créer un fichier dans /home/toto/donnees, et… ça ne marche pas: droit insuffisant.
Pourtant, le montage a bien été fait en lecture/écriture (rw) puisque c'est une l'une des options par défaut.
Oui, mais le montage a affecté le répertoire /home/toto/donnees à root:root avec des droits rwxr-xr-x (755), et donc c'est normal: un utilisateur n'a pas le droit de créer un fichier dans un tel répertoire.
Alors, je cherche dans la page man de mount (“RTFM” = “Relis Ton Foutu Manuel” en français !), et je constate que ni uid ni umask ne sont reconnus pour un formatage linux comme “ext3”: il n'y a apparemment aucune option permettant d'affecter le répertoire de montage à un utilisateur!
Alors, comment peut-on faire pour que l'utilisateur puisse utiliser sa partition montée?
Une fois le montage terminée, on peut ajuster le propriétaire du répertoire /home/toto/donnees (qui porte le montage de la partition) par une commande shell en console sous root (ou par konqueror en mode root):
# chown toto:users /home/toto/donnees
Si on ne veut pas recommencer à chaque boot, il faut créer un fichier script avec cette commande, et l'intégrer dans le processus de boot. Exemple de ce script très simple:
#! /bin/sh chown toto:users /home/toto/donnees
On peut le mettre dans /home/toto/.kde/Autostart et le rendre exécutable. Il s'exécutera à chaque ouverture de session (et pas seulement à chaque boot), mais ce n'est pas grave.
Cela résoud le problème, mais ce n'est pas forcément élégant.
On monte la partition /dev/sda5 sur le répertoire (à créer avant) /media/donnes avec la ligne classique dans fstab:
/dev/sda5 /media/donnees ext3 acl,user_xattr 0 0
Dans ce répertoire ainsi monté, on créé un sous répertoire “toto” avec pour propriétaire toto:users et des droits “rwxr-xr-x” (755):
# mkdir /media/donnees/toto # chown toto:users /media/donnees/toto # chmod 755 /media/donnees/toto
On fait ensuite un montage “bind” avec la ligne dans fstab:
/media/donnees/toto /home/toto/donnees none bind 0 0
Et voilà, le répertoire “/home/toto/donnees” a le propriétaire qu'il faut (toto:users) et les droits qu'il faut (rwxr-xr-x ou 755), et l'utilisateur toto pourra donc faire tout ce qu'il veut dans la nouvelle partition, et ceci avec la simple application du fstab au boot.
Option supplémentaire
L'utilisateur toto peut ne pas être le seul à utiliser la partition /dev/sda5. On pourrait ainsi créer d'autres répertoires pour les autres utilisateurs: /media/donnees/user2, /media/donnees/user3, etc… chacun avec le bon propriétaire et les bons droits, avec les lignes équivalentes dans fstab pour faire autant de montages bind:
/media/donnees/user2 /home/user2/donnees none bind 0 0 /media/donnees/user3 /home/user3/donnees none bind 0 0 etc...
On peut même faire en sorte que chacun soit le seul à accéder dans son répertoire: il suffit, par exemple pour toto, que /media/donnees/toto ait un droit rwx—— (700). De même pour les autres répertoires utilisateurs.
Amusez-vous bien!