ProFTPD funktioniert nach einem chmod-Unfall nicht mehr richtig

530
Mario Werner

Hintergrund

Gestern morgen habe ich eine WordPress-Installation auf meinem vserver konfiguriert SSHund wie eine ordentliche DAU vermasselt (wie rootselbstverständlich angemeldet ). :(

Ich wollte das pluginsVerzeichnis auf setzen 755und habe .den Pfad vergessen . Also endete ich chmod -R 755 /*statt chmod -R 755 ./*.

Als ich meinen Fehler bemerkte, lief das Skript bereits 2-3 Sekunden, bevor ich hämmerte Ctrl+C.

Wie zu erwarten, hat dies mein System wirklich durcheinander gebracht. Das meiste wurde jedoch mit Hilfe eines Freundes behoben . Glücklicherweise hat er den gleichen vserver bei demselben Provider.

Ich habe die Dateiberechtigungen von seiner Installation mit kopiert find /* -exec stat -c "chmod %a \"%n\"" {} + >~/default_permissions.und das Skript auf meinem vserver ausgeführt.

Problem

Der Großteil des Systems scheint wieder zu funktionieren. Plesk, HTTPD, Mail, SSH. Aber das einzige, was noch nicht funktioniert richtig ist ProFTPD. Und ich kann nicht verstehen warum. Ich kann keine relevanten Protokolldateien neben usr/local/psa/var/log/ftp_tls.logund finden /usr/local/psa/var/log/xferlog. Diese enthalten jedoch keine zugehörigen Fehlermeldungen.

Symptome

Wenn ich mich über normales FTP verbinde, wird die Verbindung sofort abgebrochen, ohne nach Benutzername / Passwort gefragt zu werden:

root@hostname:/# ftp hostname.tld Connected to hostname.tld. 421 Service not available, remote server has closed connection 

Wenn ich mich über sftp verbinde, funktioniert es nur, wenn ich mich als root, aber nicht als normaler ftp-Benutzer anmelde.

root@hostname:/# sftp -v user@hostname.tld Connecting to hostname.tld... OpenSSH_5.3p1 Debian-3ubuntu7.1, OpenSSL 0.9.8k 25 Mar 2009 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for * debug1: Connecting to hostname.tld [x.x.x.x] port 22. debug1: Connection established. debug1: permanently_set_uid: 0/0 debug1: identity file /root/.ssh/id_rsa type -1 debug1: identity file /root/.ssh/id_dsa type -1 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3p1 Debian-3ubuntu7.1 debug1: match: OpenSSH_5.3p1 Debian-3ubuntu7.1 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu7.1 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-md5 none debug1: kex: client->server aes128-ctr hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Host 'hostname.tld' is known and matches the RSA host key. debug1: Found key in /root/.ssh/known_hosts:1 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey,password debug1: Next authentication method: publickey debug1: Trying private key: /root/.ssh/id_rsa debug1: Trying private key: /root/.ssh/id_dsa debug1: Next authentication method: password user@hostname.tld's password: debug1: Authentication succeeded (password). debug1: channel 0: new [client-session] debug1: Requesting no-more-sessions@openssh.com debug1: Entering interactive session. debug1: Sending environment. debug1: Sending subsystem: sftp debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0 debug1: channel 0: free: client-session, nchannels 1 debug1: fd 0 clearing O_NONBLOCK Transferred: sent 1424, received 1960 bytes, in 0.0 seconds Bytes per second: sent 31175.5, received 42910.0 debug1: Exit status 1 Connection closed root@hostname:/# 

Ich bin fast zu 100% sicher, dass dies höchstwahrscheinlich darauf zurückzuführen ist, dass einige Dateien immer noch die falschen Berechtigungen haben. Aber ich bin hier ein bisschen verloren ... Jede Hilfe wäre sehr dankbar!

Bearbeiten

Ich habe versucht, ProFTPD erneut zu installieren, wie von Marius Matutiae vorgeschlagen. Leider hat es nicht geklappt.

root@hostname:~# sudo apt-get install --reinstall proftpd Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting proftpd-basic instead of proftpd The following packages were automatically installed and are no longer required: libcrypt-rijndael-perl psa11-php-fakepackage libcrypt-cbc-perl Use 'apt-get autoremove' to remove them. Suggested packages: proftpd-doc proftpd-mod-mysql proftpd-mod-pgsql proftpd-mod-ldap proftpd-mod-odbc proftpd-mod-sqlite The following NEW packages will be installed: proftpd-basic 0 upgraded, 1 newly installed, 0 to remove and 90 not upgraded. Need to get 929kB of archives. After this operation, 2294kB of additional disk space will be used. Get:1 ftp://ftp.hosteurope.de/mirror/archive.ubuntu.com/ lucid-security/universe proftpd-basic 1.3.2c-1ubuntu0.1 [929kB] Fetched 929kB in 0s (6206kB/s) Preconfiguring packages ... Selecting previously deselected package proftpd-basic. (Reading database ... 99546 files and directories currently installed.) Unpacking proftpd-basic (from .../proftpd-basic_1.3.2c-1ubuntu0.1_amd64.deb) ... dpkg: error processing /var/cache/apt/archives/proftpd-basic_1.3.2c-1ubuntu0.1_amd64.deb (--unpack): trying to overwrite '/etc/pam.d/proftpd', which is also in package psa-proftpd 0:1.3.4c-ubuntu10.04.build115130528.15 dpkg-deb: subprocess paste killed by signal (Broken pipe) Errors were encountered while processing: /var/cache/apt/archives/proftpd-basic_1.3.2c-1ubuntu0.1_amd64.deb E: Sub-process /usr/bin/dpkg returned an error code (1) 

Ich habe dann versucht, psa-proftpd neu zu installieren, aber es hat auch nicht funktioniert.

root@hostname:~# sudo apt-get install --reinstall psa-proftpd Reading package lists... Done Building dependency tree Reading state information... Done Reinstallation of psa-proftpd is not possible, it cannot be downloaded. The following packages were automatically installed and are no longer required: libcrypt-rijndael-perl psa11-php-fakepackage libcrypt-cbc-perl Use 'apt-get autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 90 not upgraded. 

Bearbeiten 2

Problem gelöst

Ich entdeckte, dass die /var/log/daemon.logDatei jedes Mal um einen Eintrag erweitert wurde, wenn ich eine FTP-Verbindung versuchte:

proftpd[17762]: Fatal: ScoreboardFile: : unable to use '/var/run/proftpd_scoreboard': Operation not permitted on line 72 of '/etc/proftpd.conf' 

Nach einiger Zeit von Google fand ich diesen Beitrag: https://forums.proftpd.org/smf/index.php?topic=3516.0

Dieser Typ hatte die gleichen Probleme wie ich. Nachdem er die Berechtigungen geändert hatte, hörte er auf, für ihn zu arbeiten.

Also habe ich noch einmal die Berechtigungen der Ordner /var/und der /var/run/Ordner beider Server verglichen und auf meinem Server entsprechend geändert ... Jetzt kann ich wieder eine Verbindung zu FTP herstellen! WHEE! : D

2
Warum "apt-get install --reinstall" nicht einfach Ihr proftpd-Paket? Sie können Konfigurationsdateien ganz einfach beiseite legen, und eine Neuinstallation ist viel einfacher als das Suchen einer Nadel im Heuhaufen. MariusMatutiae vor 8 Jahren 2
@MariusMatutiae Ja, du hast recht. Ich bin mir jedoch nicht sicher, ob dies alles mit Plesk in Verbindung bringt. Mario Werner vor 8 Jahren 0
@MariusMatutiae Hat es gelöst. Mario Werner vor 8 Jahren 0

0 Antworten auf die Frage