Montage d'une partition avec un propriétaire précis

Bonjour,

Je dois monter une partition au démarrage de mon système, dans un répertoire qui doit appartenir à un utilisateur précis.
Voici ce que j’ai indiqué dans mon /etc/fstab :
/dev/sdd /home/monuser/web/cloud.monuser.pro/data ext3 rw,noatime,uid=1004,gid=1004,umask=007 0 0

Seulement après un redémarrage, mon répertoire /home/monuser/web/cloud.monuser.pro/data appartient à nouveau à root:admin au lieu de monuser:monuser (qui a comme gid/uid 1004)

Qu’est-ce que je rate ?

/dev/sdd n’est pas une partition. De toute façon on ne monte pas une partition mais un système de fichiers (qui se trouve éventuellement dans une partition).

ext3 (ainsi que ses frères ext2 et ext4) n’a pas d’option uid, gid ni umask. Voir la page de manuel de mount. Ces options sont spécifiques aux systèmes de fichiers non Unix comme FAT ou NTFS qui ne gèrent pas les propriétaires et permissions de la même façon.

Les propriétaires et les permissions du répertoire servant de point de montage sont remplacés par ceux de la racine du système de fichiers monté le temps du montage. Si tu veux les modifier, il faut le faire avec chown et chmod lorsque le système de fichiers est monté.

A noter qu’il n’y a pas que les propriétaires et permissions de la racine du système de fichiers monté à prendre en compte, mais aussi de toute son arborescence.

OK j’avais mal saisi pour les options propres à FAT et NTFS.

J’ai essayé de changer le propriétaire du dossier bien avant de fouiller du côté du fichier fstab :

chown -R monuser: /home/monuser/web/cloud.monuser.pro/data 

Sur le moment, ça fonctionne très bien : monuser a bien la possibilité d’écrire dans le répertoire /home/monuser/web/cloud.monuser.pro/data
C’est après un redémarrage que ça se gâte : le répertoire, bien que monté automatiquement au démarrage, appartient à l’utilisateur root et au groupe admin

Après, j’ai remarqué que ce système de fichier est déjà monté automatiquement (par l’infrastructure où est hébergé le serveur) dans un autre répertoire : /srv/monuser_data
Ce répertoire, après un redémarrage, a lui aussi comme propriétaireroot et comme groupe admin
Un changement manuel n’est là aussi que temporaire, après un redémarrage, ça revient root:admin

Il y a un truc que je ne saisi pas…

Moi non plus.
Qu’entends-tu exactement par “monté automatiquement (par l’infrastructure où est hébergé le serveur)” ?

Le serveur est chez Gandi.
Lorsque j’attache un disuqe à ce serveur, ce dernier est monté au démarrage dans /srv/monuser_data
Je n’ai pas la main sur ce processus.

Seulement j’ai besoin que ce système de fichier soit accessible à un autre endroit dans l’arborescence, à savoir /home/monuser/web/cloud.monuser.pro/data

Ça doit bien être défini quelque part. As-tu demandé au support de Gandi ?

Ça, c’est faisable, il suffit de faire un lien symbolique (man ln) ou un “bind mount” (man mount).

Pour l’utilisateur et le groupe propriétaires, c’est une autre affaire.

Je vais regarder du côté de bond mount et de ln, et contacter le support Gandi éventuellement.
Je pensais que d’ajouter le point de montage dans le fstab était tout aussi propre.

Mais mon soucis est justement cette histoire de propriétaire !

J’avoue que je ne saurais dire la différence de résultat entre un double montage et un bind mount.

En tout cas je viens de revérifier sur une installation Debian standard : l’UID et le GID de la racine d’un système de fichier ext3 monté dans un sous-répertoire dans /home/$USER sont bien préservés. D’autre part il n’y a pas de groupe “admin”, mais seulement un groupe “adm”.

Au passage, pourquoi ext3 qui est un peu obsolète et pas ext4 ?

Bon je ne m’en sors pas.

Je me disais qu’il pouvait être plus simple de trouver le moyen, au démarrage, après que les disques soient montés, de lancer un bête chown monuser: /home/monuser/web/cloud.monuser.pro/data
Ça résoudrait efficacement le soucis, même si ça fait un peu kick & dirty

Par contre je suis un peu perdu avec systemd : comment devrais-je m’y prendre ?

Si tu veux le faire façon systemd, je pense qu’il vaut mieux ouvrir un nouveau sujet. Mais il me semble que les mécanismes traditionnels comme les initscripts LSB ou /etc/rc.local fonctionnent encore.

Ah oui en effet, le fichier /etc/rc.local est tjrs là !
J’ai donc ajouté mon chown dedans et au redémarre du serveur, le répertoire a le bon propriétaire !

Merci pour ton aide, problème résolu :slight_smile: