64 votes

Comment changer le propriétaire d'un point de montage

Nous avons déplacé le répertoire de données mysql sur un autre disque, donc maintenant /var/lib/mysql est juste un point de montage vers une autre partition. Nous définissons le propriétaire de la partition /var/lib/mysql pour mysql.mysql .

Mais à chaque fois que nous montons la partition, la propriété change en root.root . Pour cette raison, 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 pour un utilisateur autre que root ?

56voto

Tim Howland Points 5705

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é. Ainsi, mount /var/lib/mysql entonces chown mysql.mysql /var/lib/mysql . Cela changera les permissions de la racine du système de fichiers de la base de données MySQL.

L'idée de base est que le système de fichiers contenant la base de données doit être modifié, et non le point de montage, à moins que son chemin ne présente des problèmes, par ex. lib ne peut être lu que par root.

50voto

Également

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

si le groupe doit être modifié aussi

16voto

Frank Nocke Points 560

Avis de non-responsabilité important (appris dans les commentaires) :

les drapeaux uid et gid ne fonctionnent que sur les systèmes de fichiers qui ne supportent pas Linux c'est-à-dire FAT et NTFS, entre autres.

Il ne s'agit donc pas d'une réponse correcte au PO mais d'une aide pour les autres.


Ajoutez uid et gid comme ceci :

/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/groupe réels (attention aux espaces) ou des valeurs numériques uid, gid. J'ai ajouté rw et exec qui pourraient vous aider à prévenir les problèmes d'accès (en supposant que vous êtes sur un système de développement, pas un serveur de production).

PS : Pour un accès encore plus large (si vous le souhaitez), ajoutez ",dir_mode=0777,file_mode=0777".

8voto

ioquatix Points 203

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

De plus, vous pouvez ajouter l'option 'user' à votre fstab, par 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 des privilèges root pour monter ce volume. Le fait de ne pas modifier votre fstab ne vous empêchera pas de résoudre votre problème !

2voto

Saurabh Barjatiya Points 4643

Je fais généralement cela sur un répertoire vide non monté

chmod 777 <directory>

Ensuite, faites

chown -R mysql.mysql <directory>

Ensuite, dans /etc/fstab, faites

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

Ensuite, utilisez

mount -a

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

Cela fonctionne pour moi. Essayez-le

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X