Frage Wie ändere ich den Besitzer des Mountpoints?


Wir haben das mysql-Datenverzeichnis jetzt auf einen anderen Datenträger verschoben /var/lib/mysql ist nur ein Mount-Punkt zu einer anderen Partition. Wir setzen den Besitzer der /var/lib/mysql Verzeichnis zu mysql.mysql.

Aber jedes Mal, wenn wir die Partition mounten, ändert sich der Besitz in 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-Punktes auf einen anderen Benutzer als root?


36
2017-07-11 12:07


Ursprung




Antworten:


Sie müssen die Berechtigungen des eingehängten Dateisystems ändern, nicht des Bereitstellungspunkts, wenn das Dateisystem nicht bereitgestellt ist. So mount /var/lib/mysql dann chown mysql.mysql /var/lib/mysql. Dies ändert die Berechtigungen des Stammverzeichnisses des MySQL DB-Dateisystems.

Die Grundidee ist, dass das Dateisystem, das die Datenbank enthält, geändert werden muss, nicht der Einhängepunkt, es sei denn, sein Pfad weist einige Probleme auf, z. lib kann nur von root gelesen werden.


36
2017-07-11 12:46



Das funktionierte wirklich für mich :) Danke! - Arie K


ebenfalls

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

wenn die Gruppe auch geändert werden muss


27
2017-09-29 16:05



Wo die UID ist foo ist der Name des Benutzers, der Eigentümer des Bereitstellungspunkts sein soll. Und gid foo ist der Name der Benutzergruppe, im Allgemeinen derselbe wie der Benutzername. Im Zweifelsfall einfach tippen ls -l in Ihrem Home-Verzeichnis und überprüfen Sie jeweils den Vor- und Nachnamen. - Zequez


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-, gid-Werte verwenden. Ich habe rw und exec hinzugefügt, was Ihnen weiter helfen kann, Zugriffsprobleme zu vermeiden (vorausgesetzt, Sie befinden sich auf einem Entwicklungssystem, nicht auf einem Produktionsserver).

PS: Für noch mehr Zugriff (falls gewünscht), add ", dir_mode = 0777, file_mode = 0777"


8
2018-04-24 12:18



Nein, es ist relatime. lwn.net/Articles/244829 - endolith
-1 weil uid und gid Flags funktionieren nur auf Dateisystemen, die nicht unterstützt das Linux-Berechtigungsschema, dh unter anderem FAT und NTFS. Sehen askubuntu.com/a/34068/329506 - mgarciaisaia
Ja, ich stieß auf die UID / GID-Frage - gibt es eine Lösung? - tofutim


Stellen Sie sicher, dass Sie die Berechtigungen ändern, wenn das Dateisystem nicht gemountet ist - das Ausführen von Mounten funktioniert noch nie für mich.

Zusätzlich können Sie die 'user' Option zu Ihrer fstab 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 diesen Datenträger zu mounten. Wenn Sie Ihre fstab nicht ändern, wird Sie das Problem nicht beheben!


3
2017-07-11 12:25





Normalerweise mache ich das auf leeren unmounten Verzeichnis

chmod 777 <directory>

Dann mach

chown -R mysql.mysql <directory>

Dann in / etc / fstab tun

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

Dann benutze

mount -a

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

Das funktioniert für mich. Versuche es


1
2017-07-11 13:14





Wenn du es nur als Teil der machen willst mount Befehlszeile können Sie die verwenden -o schalten und machen:

mount device mount-point -o uid=foo

Dadurch wird der Besitzer des Einhängepunkts zum Benutzer geändert foo anstelle von root.


1
2017-07-11 17:10