Outils pour utilisateurs

Outils du site


montage_linux_utilisateur

Montage d'une partition formatée linux avec droit d'écriture pour un utilisateur

Problématique

Vous avez une partition, par exemple /dev/sda5, que vous voulez affecter à l'utilisateur “toto” (identifiant rare en informatique :-D).

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?

Solutions possibles

Modification après montage par un script shell

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.

Montage bind

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!

montage_linux_utilisateur.txt · Dernière modification: 2007/12/15 09:20 par tyrtamos

Outils de la page