vsftpd: could not open database `/etc/vsftpd/passwd'

  • Hallo!


    Unter meiner aktuellen Konfiguration unter Debian Squeeze 6.0.6 und LiveConfig stable 1.5.3 unter Nutzung von vsftpd (könnte man das eventuell bei liveconfig-meta als Option hinzufügen?!) tritt nach FTP-Login folgende Meldung auf:

    Code
    vsftpd: pam_userdb(vsftpd-lc:auth): user_lookup: could not open database `/etc/vsftpd/passwd': No such file or directory


    liveconfig --diag:


    Wie kann ich diese Meldung korrekt beheben?


    Viele Grüße
    Martin

  • Ich nutze CentOS 6.3 mit vsftpd.
    Dort musste ich nebn dem vsftpd noch "db4-utils" installieren. Vielleicht fehlt das bei dir?


    Ansonsten schau mal welche berechtigungen die Datei hat (falls die vorhanden sein sollte).

    - LiveConfig 1.6.0-r2052 (Inaktiv) :: BETA: 1.6.1 - r2142 (Inaktiv)
    [HR][/HR] - CentOS 6.3 x64[HR][/HR]- Apache 2.2.15 - PHP 5.4.12* - mod_suphp 0.7.1** - MySQL 5.5.30*
    - Postfix 2.6.6 - dovecot 2.0.9 - Clamd 0.97.6** - clamav-milter 0.97.6**- postgrey 1.34**
    - vsFTPd 2.2.2 - AWStats 7.0**
    * Aus dem REMI-Repository :: ** Aus dem rpmforge-Repository

  • Also ich habe gerade testweise db4.8-util nachinstalliert und LiveConfig den Dienst neu konfigurieren lassen. Dies brachte keine Änderung.
    Die Datei ist nicht vorhanden. Das anmelden am FTP funktioniert jedoch einwandfrei?! :confused:

  • vsftpd wurde bislang nicht voll unter Debian unterstützt (in unseren Anleitungen steht deshalb auch immer was vom ProFTPd ;)). Jedenfalls haben wir das Lua-Script eben entsprechend angepasst, ab v1.6.1-r2074 funktioniert das dann auch.
    Debian hat (ziemlich sinnbefreit) keinen "db_load"-Befehl, sondern - je nach installiertem Paket - ein "db4.6_load", "db4.7_load" oder "db4.8_load" :mad:
    Eines dieser db-utils-Pakete muss also zwingend installiert sein (zB. db4.8-utils).


    Workaround bis dahin: touch /etc/vsftpd/passwd.db

  • Ah ok, dass die vsftpd Unterstützung noch nicht ausgebaut ist, war mir garnicht bewusst. Warum auch immer, ich finde vsftpd angenehmer als ProFTPd.


    db4.8-utils ist installiert. nach touch /etc/vsftpd/passwd.db und restart des Dienstes erhalte ich folgende abweichende Fehlermeldung und ein Login per FTP ist nicht mehr möglich:

    Code
    vsftpd: pam_userdb(vsftpd-lc:auth): user_lookup: could not open database `/etc/vsftpd/passwd': Invalid argument
  • Das funktioniert perfekt. Danke! :)


    Sofern es ihrerseits gute Gründe gegen vsftpd gibt, immer her damit. Vielleicht ist mein Bauchgefühl diesbezüglich auch einfach falsch.
    Es beruht größtenteils darauf, dass in der Vergangenheit in vsftpd weniger kritische Bugs gefunden wurden.

  • Die Konfiguration von vsftpd für virtuelle FTP-Accounts ist einfach grausig, da für jeden Account eine eigene Konfigurationsdatei angelegt werden muss (siehe /etc/vsftpd/users/). Außerdem kann man nicht die Anzahl gleichzeitiger Logins pro Account begrenzen, sondern nur pro IP. Mit genügend verschiedenen Quell-Adressen kann ein einzelner Kunde somit theoretisch alle verfügbaren FTP-Verbindungen selbst aufbrauchen (DoS).
    Aber was soll's - ist auch ein FTP-Server, der seinen Zweck erfüllt. :)

  • Hm... währe denn theoretisch der Wechsel hin zu ProFTPd ohne größere Probleme möglich? Zur Zeit sind keine zusätzlichen virtuellen Accounts angelegt sondern nur die Systembenutzer entsprechend den Verträgen.
    Würden diese dann ohne neues Anlegen wieder funktionieren?

  • So lange keine virtuellen FTP-User angelegt sind sollte das in dieser Richtung kein Problem sein. (von ProFTPd zu vsftpd ist nicht möglich, da hier für jeden Systembenutzer auch eine eigene User-Konfiguration benötigt wird)


    Soo schlimm ist vsftpd aber auch wieder nicht ;) - unter CentOS ist das wiederum der Standard-FTP-Server.


    Viele Grüße


    -Klaus Keppler

  • Habe gerade mal meinen Testserver wieder hochgefahren und...


    Ooh.. Oops.
    Mir ist eben aufgefallen das das Problem unter CentOS offenbar ebenfalls existiert.


    Installiert ist:
    CentOS 6.3
    db4-utils 4.7.25
    vsFTP 2.2.2


    "db_load" exisitiert auf dem Server.
    Habe also folgenden Befehl abgesetzt

    Code
    echo -n "" | db_load -t hash -T /etc/vsftpd/passwd.db
    chmod 600 /etc/vsftpd/passwd.db


    und den vsFTPd-Dienst via

    Code
    /etc/init.d/vsftpd restart


    neu gestartet.


    Die Fehlermeldung

    Code
    Dec  7 10:40:59 meintest vsftpd: pam_userdb(vsftpd-lc:auth): user_lookup: could not open database `/etc/vsftpd/passwd': No such file or directory
    Dec  7 10:40:59 meintest vsftpd: pam_userdb(vsftpd-lc:account): user_lookup: could not open database `/etc/vsftpd/passwd': No such file or directory

    ist bei meinem letzten testlogin nicht mehr aufgetaucht :)

    - LiveConfig 1.6.0-r2052 (Inaktiv) :: BETA: 1.6.1 - r2142 (Inaktiv)
    [HR][/HR] - CentOS 6.3 x64[HR][/HR]- Apache 2.2.15 - PHP 5.4.12* - mod_suphp 0.7.1** - MySQL 5.5.30*
    - Postfix 2.6.6 - dovecot 2.0.9 - Clamd 0.97.6** - clamav-milter 0.97.6**- postgrey 1.34**
    - vsFTPd 2.2.2 - AWStats 7.0**
    * Aus dem REMI-Repository :: ** Aus dem rpmforge-Repository

  • [2016/08/17 09:00:21.016992] [7216|7220] [LUA] Can't find 'db_load' utility - did you install the db4-util package?


    # db5.3_load -V
    Berkeley DB 5.3.28: (September 9, 2013)


    Könnten Sie db-util ins Wiki bei manuelle Installation aufnehmen?


    Nach LC-Restart wurden die offenen Aufträge verarbeitet.

    # Das Gras wächst nicht schneller wenn man daran zieht # Bitte keine inflationären Vollzitate #

    2 Mal editiert, zuletzt von lebenszeit ()

  • ... allerdings bewirkt das nichts. Neu angelegter Account:


    Keine db_util-Meldung mehr, dennoch


    Antwort: 530 Login incorrect.
    Fehler: Kritischer Fehler: Herstellen der Verbindung zum Server fehlgeschlagen

    # Das Gras wächst nicht schneller wenn man daran zieht # Bitte keine inflationären Vollzitate #

  • Ich habe eben auf einem "frischen" Debian 8 eine Installation mit vsftpd getestet.
    Es reicht, die Pakete "vsftpd" und "db-util" zu installieren (/usr/bin/db_load wird dabei automatisch als Symlink auf /usr/bin/db5.3_load eingerichtet). Bei einem Dist-Upgrade von Wheezy auf Jessie sollte eigentlich das db-Paket auch von 4.x auf 5.3 aktualisiert werden.


    Allerdings ist mir eben aufgefallen, dass nach Änderungen am Startverzeichnis eines zusätzlichen (virtuellen) FTP-Accounts scheinbar das Passwort nicht mehr funktioniert. Wenn das Passwort neu gesetzt wird, klappt die Anmeldung damit einwandfrei. Ich werde das gleich mal im Detail prüfen...

  • db-util ist jetzt vorhanden; LC neu gestartet; passwd.db aus dem nächtlichen Backup eingesetzt. Neues Passwort für FTP per Systembenutzer funktioniert. Bei Änderung oder Neu-Anlage (nie vorher vorhandener) Zusatzbenutzer wird passwd.db beschrieben - weiterhin allerdings 530. Mit oder ohne Startverzeichnis.


    Update:
    pam_unix(vsftpd-lc:auth): check pass; user unknown


    /etc/pam.d/vsftpd
    auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed


    Jedoch keine /etc/pam.d/vsftpd-lc vorhanden. Sollte die da sein?

    # Das Gras wächst nicht schneller wenn man daran zieht # Bitte keine inflationären Vollzitate #

    3 Mal editiert, zuletzt von lebenszeit ()

  • Jedoch keine /etc/pam.d/vsftpd-lc vorhanden. Sollte die da sein?


    Ja. :)
    LiveConfig legt die automatisch an, wenn die Verwaltung des vsftpd über Serververwaltung -> FTP aktiviert wird.


  • Danke! Update: Code ist in function install() in /usr/lib/liveconfig/lua/vsftpd.lua zu finden.


    Gibt es neben dieser und den in [LC#2015111334000042] genannten Dateien noch weitere, die LC einmalig anlegt oder anpasst und die bei Umzügen mitzunehmen sind?

    # Das Gras wächst nicht schneller wenn man daran zieht # Bitte keine inflationären Vollzitate #

    2 Mal editiert, zuletzt von lebenszeit ()

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!