Fix: bad ownership or modes for chroot directory component

Hat man sich einen Chroot SFTP Benutzer eingerichtet und erhält folgende Fehlermeldung, dann hat der Ordner die falschen Rechte.

sshd[5237]: fatal: bad ownership or modes for chroot directory component "/srv/htdocs/web_123/"

Dies ist ein ChrootDirectory Eigentümer Problem. OpenSSH lehnt SFTP-Verbindungen in Ordner ab, die als unsicher anerkannt werden. Die Ordner müssen rekursiv root gehören.

Beispiel:

Subsystem sftp internal-sftp

Match User testuser
        ChrootDirectory /srv/htdocs/web_123/html/public/
        ForceCommand internal-sftp
        AllowTcpForwarding no

In diesem Szenario möchten wir einen Linux Benutzer in den Ordner /srv/htdocs/web_123/html/public/ chrooten, die Ordner /srv/htdocs/web_123/html gehören aber dem „unsicheren“ Benutzer www-data. Der obige Fehler erscheint also weil die Ordner /srv/htdocs/web_123/html/ nicht root gehören.

Lösung:

Um Rechteprobleme mit dem Webserver zu vermeiden, legen wir unseren testuser wie gewohnt nach /home/testuser/ an.

useradd -m -s /bin/false testuser

Und ändern ChrootDirectory wie folgt.

Subsystem sftp internal-sftp

Match User testuser
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no

Wir erstellen einen neuen Ordner und vergeben die korrekten Rechte.

mkdir /home/testuser/public
chown testuser: /home/testuser/public

chown root:root /home/testuser
chmod 0755 /home/testuser

Jetzt mounten wir den public-Ordner nach /home/testuser/public und der SFTP-Benutzer testuser kann Dateien hochladen.

mount --bind /srv/htdocs/web_123/html/public /home/testuser/public

Diesen Bind-Mount hinterlegen wir ebenfalls in unserer /etc/fstab.

/srv/htdocs/web_123/html/public /home/testuser/public none bind 0 0
Dominion

Dominion

Linux Systemadministrator

Das könnte Dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.