So ändern Sie den Eigentümer des Einhängepunkts

44

Wir haben das mysql-Datenverzeichnis auf eine andere Festplatte verschoben, daher handelt es sich jetzt /var/lib/mysqlnur um einen Einhängepunkt für eine andere Partition. Wir setzen den Eigentümer des /var/lib/mysqlVerzeichnisses auf mysql.mysql.

Aber jedes Mal, wenn wir die Partition mounten, ändert sich der Besitz zu root.root. Aus diesem Grund konnten wir keine zusätzliche MySQL-Datenbank erstellen.

Unser fstab Eintrag:

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

Wie ändere ich den Besitzer des Mount-Punkts in einen anderen Benutzer als root?

Arie K
quelle

Antworten:

43

Sie müssen die Berechtigungen des bereitgestellten Dateisystems und nicht des Bereitstellungspunkts ändern, wenn das Dateisystem nicht bereitgestellt ist. Also mount /var/lib/mysqldann chown mysql.mysql /var/lib/mysql. Dadurch werden die Berechtigungen des Stammverzeichnisses des MySQL DB-Dateisystems geändert.

Die Grundidee ist, dass das Dateisystem, das die Datenbank enthält, geändert werden muss, nicht der Mount-Punkt, es sei denn, sein Pfad weist einige Probleme auf, z. B. libkann er nur von root gelesen werden.

Cristian Ciupitu
quelle
32

ebenfalls

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

wenn die Gruppe ebenfalls geändert werden muss


quelle
2
Wobei die UID fooder Name des Benutzers ist, der Eigentümer des Mountpunkts sein soll. Und gid fooist der Name der Benutzergruppe, im Allgemeinen derselbe wie der Benutzername. Im Zweifelsfall geben Sie einfach ls -lIhr Heimatverzeichnis ein und überprüfen Sie den Vor- und Nachnamen.
Zequez
10

Fügen Sie uid und gid wie folgt hinzu:

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

Sie können tatsächliche Benutzer- / Gruppennamen (Leerzeichen beachten) oder numerische uid- und gid-Werte verwenden. Ich habe rw und exec hinzugefügt, die Ihnen möglicherweise dabei helfen, Zugriffsprobleme zu vermeiden (vorausgesetzt, Sie befinden sich auf einem Entwicklungssystem und nicht auf einem Produktionsserver).

PS: Für noch mehr Zugriff (falls gewünscht), fügen Sie ", dir_mode = 0777, file_mode = 0777" hinzu

Frank Nocke
quelle
3
Nein, das ist es relatime. lwn.net/Articles/244829
Endolith
7
-1 weil uidund gidFlags nur auf Dateisystemen funktionieren, die das Linux-Berechtigungsschema nicht unterstützen, z. B. FAT und NTFS. Siehe askubuntu.com/a/34068/329506
mgarciaisaia
2
Ja, ich bin auf das UID / GID-Problem gestoßen. Gibt es eine Lösung?
Tofutim
Dies hat mir bei meinem FAT32-Laufwerk geholfen. Danke.
Naeem Khan
3

Stellen Sie sicher, dass Sie die Berechtigungen ändern, wenn das Dateisystem nicht gemountet ist - es hat bei mir noch nie funktioniert, wenn Sie es im gemounteten Zustand tun.

Zusätzlich können Sie Ihrer fstab die Option 'user' hinzufügen, Beispiel:

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

Dies sollte auch bedeuten, dass der Befehl mount (falls er aufgerufen werden muss) keine Root-Rechte benötigt, um dieses Volume bereitzustellen. Wenn Sie Ihre fstab nicht ändern, können Sie das Problem trotzdem beheben!

Tom Werner
quelle
2

Normalerweise mache ich das in einem leeren, nicht gemounteten Verzeichnis

chmod 777 <directory>

Dann mach

chown -R mysql.mysql <directory>

Dann in / etc / fstab machen

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

Dann benutze

mount -a

um alle in / etc / fstab aufgelisteten Dateisysteme zu mounten.

Das funktioniert bei mir. Versuche es

Saurabh Barjatiya
quelle
2

Wenn Sie dies nur als Teil der mountBefehlszeile tun möchten , können Sie den -oSchalter verwenden und Folgendes ausführen:

mount device mount-point -o uid=foo

Dadurch wird der Besitzer des Einhängepunkts in Benutzer fooanstelle von root geändert .

Nasko
quelle