VSFTPD, 553 Datei konnte nicht erstellt werden. – Berechtigungen?

Ich habe vsftpd auf Amazon EC2 mit Amazon Linux AMI eingerichtet. Ich habe einen Benutzer erstellt und kann Jetzt erfolgreich über FTP verbinden. Wenn ich jedoch versuche, etwas hochzuladen, wird die Fehlermeldung

553 Could not create file. 

angezeigt. Ich gehe davon aus, dass dies mit Berechtigungen zu tun hat, aber ich tue es nicht „Ich weiß nicht genug darüber, um es reparieren zu können. Was muss ich also tun, um Dateien hochladen zu können?

Kommentare

  • Überprüfen Sie die Selinux-Einstellungen. Konfigurieren Sie den booleschen Wert allow_ftpd_full_access auf ON.
  • Ich hatte dieses Problem, weil nicht genügend Speicherplatz zum Schreiben der Dateien vorhanden war.

Antwort

Es gibt zwei wahrscheinliche Gründe, warum dies passieren könnte: Sie haben keine Schreib- und Ausführungsberechtigungen für die Verzeichnisse, die zu dem Verzeichnis führen, in das Sie hochladen möchten, oder vsftpd ist so konfiguriert, dass Sie keine Uploads durchführen können.

Verwenden Sie im ersten Fall chmod und chown Stellen Sie gegebenenfalls sicher, dass Ihr Benutzer über diese Berechtigungen für jedes Zwischenverzeichnis verfügt. Das Schreibbit ermöglicht es dem betroffenen Benutzer, Dateien innerhalb des Verzeichnisses zu erstellen, umzubenennen oder zu löschen und die Attribute des Verzeichnisses zu ändern, während das Lesebit es dem betroffenen Benutzer ermöglicht, die Dateien innerhalb des Verzeichnisses aufzulisten. Da auch Zwischenverzeichnisse im Pfad Wenn Sie dies beeinflussen, müssen die Berechtigungen entsprechend festgelegt werden, um zum endgültigen Ziel zu gelangen, auf das Sie hochladen möchten.

Im letzteren Fall überprüfen Sie Ihre vsftpd.conf. write_enable muss true sein, um das Schreiben zu ermöglichen (und es ist standardmäßig false). Diese Konfigurationsdatei ist unter man 5 vsftpd.conf gut dokumentiert.

Kommentare

  • Beides scheint nicht das Problem zu sein. Ich habe versucht, alles auf 777 (unsicher) und die Einstellungen write_enable = YES zu ändern, aber ich bekomme es immer noch Diese nutzlose Fehlermeldung.
  • @Cerin Konnten Sie sie beheben? Wenn ja, können Sie die Details teilen?

Antwort

Könnten Sie dies versuchen

chown -R ftpusername /var/www/html 

Kommentare

  • chmod 757 -R / var / www / html
  • @Hern á nEche danke für den Tipp, ich hatte stundenlang gejagt und dies hat schließlich mein Problem behoben.
  • Könnten Sie die Situation näher erläutern, ist dies auf dem Server oder lokal?
  • @Hern á nEche Hey, es hat auch bei mir funktioniert, aber ist es sicher. ‚ funktionierte nicht mit 755
  • @Hern á nEche, Sie sollten dies als separate Antwort festlegen. Ihr Vorschlag hat bei mir funktioniert, wo sonst nichts getan hat.

Antwort

Der Befehl ftp put /path/to/local_file funktioniert nicht mit vsftpd. Versuchen Sie Folgendes:

ftp put /path/to/local_file remote_file_name 

Sie können eine beliebige auswählen Name, den Sie für die remote_file_name wünschen, aber Sie müssen einen angeben.

Kommentare

  • Möglicherweise möchten Sie Um Ihre Antwort detaillierter zu gestalten (z. B. eine Dokumentation, die die Gültigkeit Ihrer Lösung ‚ unterstützt).
  • Dies geschieht, weil (und wenn) /path/to/ existiert nicht ‚ nicht (und / oder ist ‚ nicht über die FTP-Sitzung zugänglich) Aus diesem Grund funktioniert ftp put local_file ohne explizites Ziel. (Hinweis: Überprüfen Sie die Zeile local: … remote: … der FTP-Client.)
  • Es hat bei mir funktioniert! 🙂

Antwort

Das FTP-Ausgangsverzeichnis (ftp_home_dir) ist höchstwahrscheinlich in SeLinux deaktiviert. Geben Sie Folgendes ein, um den Status Ihrer ftpd Steuerdateien anzuzeigen: getsebool -a und suchen Sie den Abschnitt ftpd. Möglicherweise stellen Sie fest, dass ftp_home_dir deaktiviert ist. Verwenden Sie zum Einschalten den folgenden Befehl: setsebool -P ftp_home_dir=1

Überprüfen Sie Ihre Eingabe mit getsebool -a und versuchen Sie dann den Upload nochmal.

Hinweis: Ignorieren Sie die Satzzeichen

Antwort

Ich hatte das gleiche Problem und habe das Ändern von SELinux in behoben Erlaube das Schreiben in den Ordner, den ich für die Verwendung durch vsftp = /var/ftp/pub konfiguriert habe.

Diese Links können hilfreich sein:

Wenn Sie mit Ihrem SELinux nicht weiter gehen möchten, ändern Sie es nicht. Daher wird standardmäßig

SELINUX=enforcing 

Führen Sie die Befehle dann einfach als root oder mit sudo aus:

sudo setsebool -P ftpd_anon_write 1 sudo setsebool -P ftpd_full_access 1 

wie bereits oben in einem anderen Kommentar beschrieben.

Antwort

Versuchen Sie dies

chmod 757 -R /var/www/html 

Antwort

Überprüfen Sie Ihre vsftpd.conf auf diese Einstellung:

guest_enable=YES # set it to NO then restart the vsftpd service. 

Wenn es auf YES gesetzt ist, wird auch das 553 Could not create file verursacht.

From : http://www.vsftpd.beasts.org/vsftpd_conf.html

guest_enable Wenn diese Option aktiviert ist, werden alle nicht anonymen Anmeldungen als „Gast“ -Anmeldungen klassifiziert. Eine Gastanmeldung wird dem in der Einstellung für den Gastbenutzernamen.

Standard: NEIN

Antwort

Mit dem nächsten Parameter kann ftpd überall schreiben:

setsebool -P ftpd_full_acess=true 

Verwenden Sie ftpd_anon_write nur, wenn anonyme Uploads zulässig sind.

A. nswer

In meinem Fall gab es ein Problem mit dem Dateisystem.

Es gab ein Leerzeichen, aber dem Dateisystem gingen die Inodes aus df -i

# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvdf1 3276800 3276800 0 100% /ftp-data01 

Antwort

Eine weitere Möglichkeit: Überprüfen Sie die Datenträgerkontingente für die Benutzer / Gruppe

ext:

repquota -a 

xfs:

xfs_quota -x -c "report" /mount_point 

Antwort

Es ist wahrscheinlich, dass der Dateiname nicht unterstützte Zeichen enthält.

Antwort

In meinem Fall hatte der FTP-Benutzer keine Berechtigungen in dem Verzeichnis, in dem er sich befand .

Ich hatte gerade vergessen, in das Zielverzeichnis zu wechseln, für das ich die richtigen Berechtigungen hatte.

Antwort

In meinem Fall (CentOS7 + vsftpd) ändern Sie die Verzeichnisberechtigungen mit dem Befehl “ chmod 775 / home / u ser / ftpdir / “ hat nicht geholfen.

Ich habe den Selinux-Status mit dem Befehl “ sestatus , es wurde aktiviert, ich liste FTP-bezogene Optionen auf: “ getsebool -a | grep ftp “

und aktivierte die deaktivierte Option ftpd_full_access mit dem Befehl “ setsebool ftpd_full_access auf „. Dann wurde mit dem Schreiben der Datei begonnen.

Antwort

Führen Sie für Fedora23 die folgenden Befehle aus:

setsebool -P ftpd_anon_write 1 setsebool -P ftpd_full_access 1 

Es hat bei mir funktioniert.

Schreibe einen Kommentar

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