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 funktioniertftp put local_file
ohne explizites Ziel. (Hinweis: Überprüfen Sie die Zeilelocal: … 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:
- https://fedoraproject.org/wiki/SELinux/ftpd
- http://prithak.blogspot.com/2013/07/installation-and-configuration-of.html
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.