Comment changer le propriétaire du point de montage

44

Nous avons déplacé le répertoire de données mysql sur un autre disque, il ne /var/lib/mysqlreste donc qu'un point de montage sur une autre partition. Nous définissons le propriétaire du /var/lib/mysqlrépertoire sur mysql.mysql.

Mais chaque fois que nous montons la partition, la propriété devient root.root. De ce fait, nous n'avons pas pu créer de base de données MySQL supplémentaire.

Notre entrée fstab:

/dev/mapper/db-db   /var/lib/mysql    ext3    relatime        0       2

Comment changer le propriétaire du point de montage en utilisateur autre que root?

Arie K
la source

Réponses:

43

Vous devez modifier les autorisations du système de fichiers monté, et non du point de montage lorsque le système de fichiers n'est pas monté. Alors mount /var/lib/mysqlalors chown mysql.mysql /var/lib/mysql. Cela modifiera les permissions de la racine du système de fichiers MySQL DB.

L'idée de base est que le système de fichiers contenant la base de données doit être changé, et non le point de montage, à moins que son chemin ne pose problème, par exemple, libil ne peut être lu que par root.

Cristian Ciupitu
la source
32

également

mount device mount-point -o uid=foo -o gid=foo

si le groupe doit être changé aussi


la source
2
Où uid fooest le nom de l'utilisateur que vous voulez être le propriétaire du point de montage. Et gid fooest le nom du groupe d'utilisateurs, généralement le même que le nom d'utilisateur. En cas de doute, tapez simplement ls -ldans votre répertoire personnel et vérifiez les premier et deuxième noms respectivement.
Zequez
10

Ajoutez uid et gid comme ceux-ci:

/dev/mapper/db-db  /var/lib/mysql ext3  relatime,rw,exec,uid=frank,gid=www-group        0       2

Vous pouvez utiliser des noms d'utilisateur / de groupe réels (méfiez-vous des espaces) ou des valeurs numériques d'ID, d'ID utilisateur. J'ai ajouté rw et exec, ce qui pourrait vous aider davantage à prévenir les problèmes d'accès (en supposant que vous êtes sur un système de développement, pas sur un serveur de production).

PS: pour encore plus d’accès (si vous le souhaitez), ajoutez ", dir_mode = 0777, file_mode = 0777"

Frank Nocke
la source
3
Non c'est relatime. lwn.net/Articles/244829
endolith
7
-1 car les indicateurs uidet gidne fonctionnent que sur les systèmes de fichiers qui ne prennent pas en charge le schéma d'autorisations Linux, à savoir, FAT et NTFS, entre autres. Voir askubuntu.com/a/34068/329506
mgarciaisaia
2
oui, j'ai rencontré le problème uid / gid - existe-t-il une solution?
Tofutim
Cela m'a aidé avec mon lecteur FAT32. Merci.
Naeem Khan
3

Assurez-vous de changer les autorisations lorsque le système de fichiers n'est pas monté - le faire en étant monté n'a jamais fonctionné pour moi.

De plus, vous pouvez ajouter l’option 'utilisateur' à votre fstab, exemple:

/dev/mapper/db-db   /var/lib/mysql    ext3    relatime,user        0       2

Cela devrait également signifier que la commande mount (si elle doit être appelée) n'aura pas besoin de privilèges root pour monter ce volume. Ne pas changer votre fstab ne vous empêchera pas de résoudre votre problème!

Tom Werner
la source
2

Je le fais habituellement sur un répertoire vide non monté

chmod 777 <directory>

Alors fais

chown -R mysql.mysql <directory>

Puis dans / etc / fstab, faites

<device>    <directory>  ext3   user,defaults 0 2

Puis utiliser

mount -a

pour monter tous les systèmes de fichiers listés dans / etc / fstab.

Cela fonctionne pour moi. Essaie

Saurabh Barjatiya
la source
2

Si vous voulez le faire uniquement en tant que partie de la mountligne de commande, vous pouvez utiliser le -ocommutateur et faire:

mount device mount-point -o uid=foo

Cela changera le propriétaire du point de montage en utilisateur fooau lieu de root.

Nasko
la source