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?

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.


32

ebenfalls

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

wenn die Gruppe ebenfalls geändert werden muss


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


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!


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


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 .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.