.png)
Auf einem Debian Apache2-Server versuche ich, Zugriff auf ein Unterverzeichnis eines Website-Baums zu gewähren (Home-Verzeichnis der Website:/home/website/öffentlich_html/, Zugriff nur für einen bestimmten Benutzer gewünscht:/home/website/public_html/boutique/modules/sftpwkmodules
Der Hauptbenutzer der Website hat also Zugriff auf den gesamten Baum (Userweb).
Aber ich brauche Zugriff für BenutzerSFK-Modulein das Unterverzeichnis innerhalb des Baums und es funktioniert nicht.
Ich habe den BenutzerSFK-Moduleund Gruppesftpwkmodules.
Ich habe diese Zeilen eingerichtet insshd_configDatei:
Match group sftpwkmodules
ChrootDirectory /home/website/public_html/boutique/modules/wkmanagesuppliers
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no
Aber wenn ich mich verbinde mitsftpmit diesem Benutzer ist es nicht erlaubt. Im Protokoll scheint es einen falschen Besitzanspruch auf fatal zu geben:Falscher Besitz oder Modi für die Chroot-Verzeichniskomponente „/home/website/public_html/“.
Aber ich kann nicht den Eigentümer des gesamten Baums ändern, nur um diesem Benutzer Zugriff auf das Unterverzeichnis zu gewähren. Gibt es eine Möglichkeit, das zum Laufen zu bringen?
Antwort1
Bevor Sie die Berechtigungen ändern, sollten Sie bedenken, dass Ihr Webserver mindestens Leseberechtigungen für die Dateien und Verzeichnisse haben muss. Außerdem gehören alle vom Benutzer sfkmodules erstellten Dateien/Verzeichnisse diesem Benutzer und sind, abhängig von Ihrer Umask, möglicherweise nicht vom Webserver lesbar.
Eine mögliche Lösung wäre, die Benutzer in ihren eigenen Verzeichnissen außerhalb des Webroots zu chrooten und eine Art Watchdog zu entwickeln, der erkennt, wenn Dateien abgelegt werden, und diese Dateien in das Webroot verschiebt. Auf diese Weise können Sie Eigentümerschaft und Berechtigungen kontrollieren.
PERL und cron sind Ihre Freunde für dieses Unterfangen.
Antwort2
Erstellen Sie eine Gruppe, fügen Sie den erforderlichen Benutzer sowie alle anderen Benutzer, denen Sie Zugriff gewähren möchten, zur Gruppe hinzu und weisen Sie die erforderlichen Berechtigungen zu. Verwenden Sie dieses Mal kein Chroot.
Die folgenden Befehle gelten für CentOS, aber Sie verstehen, was ich meine.
sudo groupadd groupname
sudo usermod -a -G groupname admin
sudo usermod -a -G groupname user1
sudo chown -R admin:groupname /home/website/public_html/boutique/modules/wkmanagesuppliers