Ci-dessous, les différences entre deux révisions de la page.
— |
montage_linux_utilisateur [2007/12/15 09:20] (Version actuelle) tyrtamos créée |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== 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! | ||