![So mounten Sie einen Ordner in den Home-Verzeichnissen mehrerer Benutzer mit vollständigen Berechtigungen](https://rvso.com/image/1419610/So%20mounten%20Sie%20einen%20Ordner%20in%20den%20Home-Verzeichnissen%20mehrerer%20Benutzer%20mit%20vollst%C3%A4ndigen%20Berechtigungen.png)
Ich habe einen Webserver, der Dateien von bereitstellt /var/www/vhosts/mysite
. Ich möchte diesen vhosts
Ordner einbinden, /home/myuser/vhosts
damit sich ein Benutzer anmelden, Dateien bearbeiten und abmelden kann. Das Problem besteht darin, dass die Einbindung die Berechtigungen in diesem Ordner nicht ignoriert. Einige Dateien könnten von www-data oder einem anderen Benutzer erstellt worden sein. Wenn sie von einem anderen Benutzer erstellt worden sind, hat www-data ebenfalls Probleme, sie zu lesen/ändern.
Was ich bisher versucht habe, ist, eine Bind-Mount-Funktion mit fstab zu erstellen. Der Ordner wird erfolgreich im Home-Verzeichnis des Benutzers gemountet, und mithilfe von ACL konnte ich ihm das Schreiben darin erlauben, indem ich dem Ordner eine Gruppe zuwies und rwx
www-data und den Benutzer zur Gruppe hinzufügte. Ich frage mich, ob es eine Möglichkeit gibt, den Ordner per Bind-Mount zu mounten, die Berechtigungen jedoch unverändert zu lassen, sodass www-data immer problemlos darauf lesen/schreiben/ausführen kann, während dem Benutzer gleichzeitig auch die vollen Berechtigungen gewährt werden.
Antwort1
Sie möchten diese Benutzer zuerst zur Gruppe „www-data“ hinzufügen. Dann ist die vorgesehene Methode die Verwendung von chmod g+s /home/user/vhost
. Dadurch wird SGID
für diesen Ordner festgelegt, was bedeutet, dass seine Gruppe für neue Dateien verwendet wird. Leider hilft dies nicht für die Unterverzeichnisse. Um diese auf dem neuesten Stand zu halten, müssen Sie dies nach Änderungen am Verzeichnisbaum regelmäßig ausführen: find /home/user/vhost -type d -exec chmod g+s {} \;
. Dadurch werden alle Unterverzeichnisse durchsucht und die aktiviert SGID
. Das Ärgerlichste daran ist, dass dies für alle übergeordneten Verzeichnisse durchgeführt werden muss, bevor untergeordnete Verzeichnisse hinzugefügt werden, was bedeutet, dass Sie dies manchmal mehrere Male ausführen müssen, wenn Sie Änderungen vornehmen, und wenn Sie dies vergessen, müssen Sie trotzdem einfach den Befehl chown ausführen: find /home/user/vhost -type d -exec chown user:www-data {} \;
.
Das ist, was ich sage, aber ich finde, dass dieser ganze Plan mich einfach nur nervt. In Wirklichkeit arbeite ich auf einem Entwicklungsserver mit völlig unabhängigen Berechtigungen. Nachdem ich Änderungen vorgenommen habe, habe ich ein Skript, das mit dem Produktionsserver synchronisiert wird und jedes Mal alle Eigentümer und Berechtigungen festlegt, um sicherzustellen, dass IMMER alles richtig ist. Diese Methode spart viel Zeit, weil ich mir nie Gedanken darüber machen muss, warum die Berechtigungen kaputt sind. Ich führe einfach das Skript aus und alles funktioniert wie von Zauberhand wieder.