Jail-Benutzer in das Home-Verzeichnis einladen und gleichzeitig die Berechtigung zum Erstellen und Löschen von Dateien / Ordnern erteilen

4947
Mindthetic

Ich versuche einem Client SFTP-Zugriff auf das Root-Verzeichnis seiner Site auf meinem Server (Ubuntu 10.10) zu geben, damit er seine Website selbst verwalten kann.

Ich habe zwar erfolgreich einen Benutzer in ein Verzeichnis gesperrt und ihm SFTP-Zugriff gewährt. Sie dürfen nur neue Dateien in Unterverzeichnissen (den Verzeichnissen, die sie besitzen) erstellen und löschen. Das bedeutet, dass ich ihnen Zugriff auf das übergeordnete Verzeichnis im Stammverzeichnis ihrer Site gewähren muss.

Bis jetzt habe ich die Anweisungen in diesem Tutorial wie folgt befolgt:

addgroup filetransfer usermod -G filetransfer username chown root:root /home/username chmod 755 /home/username cd /home/username mkdir docs public_html chown username:username * 

Wie kann ich sie auf das Stammverzeichnis ihrer Site beschränken (z. B. public_html), und trotzdem die Möglichkeit zum Erstellen und Löschen von Dateien haben. Alle Tutorials, die ich gelesen habe, legen nahe, dass das Stammverzeichnis der Besitzer des Home-Verzeichnisses des Benutzers sein muss, wodurch der Schreibzugriff in diesem Verzeichnis verhindert wird.

Ich bin relativ neu in der Verwaltung meines eigenen Servers, daher wäre jeder Rat dankbar.

Danke vielmals.

6

2 Antworten auf die Frage

1
Laurent Couvidou

Sie sollten sagen, was Sie genau getan haben, um dies zu erreichen. Wenn Sie dies nicht bereits tun, sollten Sie wahrscheinlich versuchen, chroot zu verwenden (Ratschläge hier: http://www.unixwiz.net/techtips/chroot-practices.html ).

Für Ihr spezielles Problem müssen Sie Ihren Benutzern Schreibberechtigung für ihren Stammordner erteilen. Legen Sie sie entweder als Besitzer fest und stellen Sie sicher, dass die Schreibberechtigung festgelegt ist. Ich bin mir nicht sicher, warum das so eine schlechte Idee wäre:

# chown someuser /user/root/folder # chmod u+w /user/root/folder 

Oder wenn Sie root als Eigentümer behalten möchten, können Sie dies mit einer Gruppe tun:

# addgroup somegroup # adduser someuser somegroup # chgrp somegroup /user/root/folder # chmod g+w /user/root/folder 

BEARBEITEN

Wie in dem bereitgestellten Link erwähnt, scheint es, dass root der Besitzer des betreffenden Verzeichnisses sein muss, damit chroot ordnungsgemäß funktioniert. Nichts scheint jedoch einen Gruppenwechsel zu verhindern. Nach den Namen dieses Tutorials könnte dies den Trick erfüllen:

# chown root:filetransfer /home/username # chmod 775 /home/username 

Beachten Sie, dass die Berechtigungen jetzt 775 und nicht 755 sind. Dies gibt allen Benutzern, die zur Datentransfergruppe gehören, Schreibberechtigung.

BEARBEITEN 2

Nein, das reicht nicht. Vielleicht ist das einfach nicht machbar.

Danke für deinen Rat. Ändern Sie in Zeile 3 Ihres zweiten Beispiels die mit dem Ordner verknüpfte Gruppe? Und in Zeile 4 nehme ich an, dass dies der Gruppe Schreibzugriff auf den Ordner gibt? Ich habe einen Verweis auf eine der Methoden hinzugefügt, die ich versucht habe, den Benutzer ins Gefängnis zu stecken und ihm SFTP-Zugriff zu geben, um Ihnen eine Grundlinie dessen zu geben, was ich bisher getan habe. Mindthetic vor 12 Jahren 0
Beide Annahmen sind richtig. Laut einem Kommentar in Ihrem Link (Ryans) sollte das Verzeichnis dem Root-Konto gehören, das Ändern der Gruppe ist jedoch möglicherweise in Ordnung. Der Gruppentrick könnte also funktionieren, ich habe meine Antwort oben bearbeitet. Laurent Couvidou vor 12 Jahren 1
Hallo danke. Nachdem Sie sich ein paar Stunden mit dem Lesen weiterer Artikel über chroot beschäftigt und Ihre Vorschläge ausprobiert haben, scheint es, als wenn Sie der Gruppe Zugriff auf das chroot-Verzeichnis gewähren, SFTP dem Benutzer den Zugriff auf das Verzeichnis verweigert. Der Fehler, den ich in einem FTP-Client bekomme, lautet "Kanal konnte nicht geöffnet werden (alle Kanäle werden geschlossen)." Irgendwann dachte ich, ich hätte es funktionieren lassen, aber ich bin mir nicht sicher, ob das mit meinem FTP-Client faul war. Mindthetic vor 12 Jahren 0
Wenn man mehr liest, scheint es, dass sshd sehr streng ist, wer Zugriff gewährt. Wenn Berechtigungen von anderen Benutzern erkannt werden, wird der Zugriff verweigert. https://wiki.archlinux.org/index.php/SFTP-chroot Mindthetic vor 12 Jahren 0
OK, also brauchst du jemanden, der mehr darüber weiß als ich. Vielleicht ist das mit chroot und sftp einfach nicht möglich? Ich habe einen SFTP-Zugriff auf eine einfache Hosting-Instanz von Gandi => keine Möglichkeit, Dateien oder Verzeichnisse unter root zu erstellen. Laurent Couvidou vor 12 Jahren 0
Wirklich schätzen Ihre Zeit. Ich weiß viel mehr über chown und chgrp :) Vielen Dank für Ihre Hilfe. Mindthetic vor 12 Jahren 0
0
Faron

Für Ubuntu-System -

Ich habe diesen Befehl mit diesen Argumenten verwendet:

sudo useradd -d /home/node -m node 

Und dann mit diesem Benutzernamen und sftp in ssh getestet - Ich habe diesen Benutzernamen erfolgreich eingesperrt, und diesem Benutzernamen wird ein bin / shell-Skelton gegeben, jedoch mit eingeschränkter Funktion.

Dies ist die einfachste und beste Lösung, auf die ich vor wenigen Tagen gestoßen bin.