vsftpd-Chroot-Opps unter Ubuntu 12.04

vsftpd-Chroot-Opps unter Ubuntu 12.04

Ich kenne mich mit Deb-basierten Systemen nicht aus, also entschuldigen Sie, wenn die Lösung einfach ist.

Ich versuche, vsftpd so einzurichten, dass Benutzer in ihren Home-Verzeichnissen gefangen gehalten werden. Ich erhalte die Meldung 500 OOPS: vsftpd: Weigerung, mit beschreibbarem Root innerhalb von chroot() ausgeführt zu werden

Ich habe dieses Problem untersucht und bin zu dem Schluss gekommen, dass die übliche Lösung darin besteht, den von thefrontiergroup bereitgestellten Backport wie folgt zu verwenden:

sudo add-apt-repository ppa:thefrontiergroup/vsftpd

Wenn ich dies tue, erhalte ich einen Python-Fehler:

You are about to add the following PPA to your system:
 vsftpd 2.3.5 with the allow_writeable_chroot feature backported from vsftpd 3.
 More info: https://launchpad.net/~thefrontiergroup/+archive/vsftpd
Press [ENTER] to continue or ctrl-c to cancel adding it

Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/dist-packages/softwareproperties/ppa.py", line 99, in run
    self.add_ppa_signing_key(self.ppa_path)
  File "/usr/lib/python2.7/dist-packages/softwareproperties/ppa.py", line 132, in  add_ppa_signing_key
    tmp_keyring_dir = tempfile.mkdtemp()
  File "/usr/lib/python2.7/tempfile.py", line 322, in mkdtemp
    name = names.next()
  File "/usr/lib/python2.7/tempfile.py", line 141, in next
    letters = [choose(c) for dummy in "123456"]
  File "/usr/lib/python2.7/random.py", line 274, in choice
    return seq[int(self.random() * len(seq))]  # raises IndexError if seq is empty
ValueError: cannot convert float NaN to integer

Beim Versuch, eine andere Lösung zu finden, finde ich eine Empfehlung, die Berechtigungen der Home-Verzeichnisse wie in diesem Artikel zu ändernvsftpd - Benutzer auf Home-Verzeichnis beschränkenDies würde jedoch zu einer Menge manueller Berechtigungen-Neueinstellungen führen, da ich möchte, dass ein Unterverzeichnis jedes Benutzers über Apache zugänglich ist, wie in der UserDir-Apache-Konfiguration beschrieben.http://httpd.apache.org/docs/2.2/howto/public_html.html

Am Ende möchte ich in der Lage sein, den Benutzer foo hinzuzufügen und auf magische Weise die Möglichkeit zu haben, dass foo volle Lese-/Schreibrechte in /home/foo hat, OHNE dass er andere Teile des Dateisystems sehen kann, umhttp://xxxx/~foo/für jeden zugänglich und Shell-Zugriff, wenn ich ihre Shell von Nologin auf Bash ändere.

Ubuntu 12.04 LTS, vsftpd 2.3.5

Bitte geben Sie mir einen Rat ... Ich bin ratlos!

Antwort1

Ich vermute nur, dass Ihre Situation nicht genau dieselbe ist, aber …

apt-get install python-software-properties

(oder vielleicht apt-get update python-software-properties)?

Das war ein erforderlicher Schritt auf dem 12.04-System, das ich eingerichtet habe, aber ich habe auch den Fehler „add-apt-repository: Befehl nicht gefunden“ erhalten, keine Python-Fehler. Diese Fehler lassen mich glauben, dass Python Ihr Problem ist, da dieser Befehl für mich erfolgreich ausgeführt wurde, nachdem ich python-software-properties installiert hatte.

Die einzige Alternative, die mir einfällt – zu spät, um zu versuchen, mein eigenes Setup zu reparieren – anstatt ein externes Repository hinzuzufügen, wäre, jedermanns Home zu /home/ zu machen und dann die Berechtigungen für alle anderen Verzeichnisse so zu ändern, dass das einzige Verzeichnis, das sie SEHEN dürfen, wenn sie /home/ lesen, „foo“ ist. Sie müssten immer noch dorthin navigieren oder Sie müssten irgendwie ein Skript schreiben, das ihr CWD nach der Anmeldung ändert, aber wenn der Startbildschirm nichts als „foo“ anzeigt und nicht beschreibbar ist, sollte es relativ geringe Auswirkungen haben, „cd foo“ ausführen oder auf den foo-Ordner klicken zu müssen, wenn Sie eine GUI verwenden. Und anscheinend ist das nicht so einfach, wie ich mir das vorgestellt hatte. Ich dachte an IIS mit NTFS-Berechtigungen, als ich mir eine Berechtigungseinstellung vorstellte, die bestimmt, ob ein Verzeichnis angezeigt werden kann. Ich habe herausgefunden, dass es in vsftpd.conf eine Option namens „hide_files“ gibt, mit der dies mit sorgfältig ausgewählten Begriffen möglicherweise möglich ist (Sie können damit einen regulären Ausdruck angeben, aber ich weiß nicht, ob Sie so etwas wie eine Variable basierend auf der Anmeldung des aktuellen Benutzers erweitern könnten, um sie für jeden Benutzer unterschiedlich zu machen …)

verwandte Informationen