Ich habe VSFTPD auf Amazon EC2 mit Amazon Linux AMI eingerichtet. Ich habe einen Benutzer erstellt und kann nun erfolgreich eine Verbindung über FTP herstellen. Wenn ich jedoch versuche, etwas hochzuladen, wird die Fehlermeldung "553 Datei konnte nicht erstellt werden" angezeigt.
Ich gehe davon aus, dass dies mit Berechtigungen zu tun hat, aber ich weiß nicht genug darüber, um das Problem beheben zu können. Was muss ich also tun, um Dateien hochladen zu können?
permissions
ftp
vsftpd
amazon-ec2
Jeff Schaller
quelle
quelle
Antworten:
Dies kann aus zwei Gründen auftreten: 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
sind so konfiguriert, dass Sie keine Uploads durchführen können.Verwenden Sie im ersten Fall
chmod
undchown
, um sicherzustellen, dass Ihr Benutzer über diese Berechtigungen für jedes Zwischenverzeichnis verfügt. Mit dem Schreibbit kann der betroffene Benutzer Dateien im Verzeichnis erstellen, umbenennen oder löschen und die Verzeichnisattribute ändern. Mit dem Lesebit kann der betroffene Benutzer die Dateien im Verzeichnis auflisten. Da sich auch Zwischenverzeichnisse im Pfad darauf auswirken, müssen die Berechtigungen so festgelegt werden, dass sie zum endgültigen Ziel führen, zu dem Sie hochladen möchten.Im letzteren Fall sehen Sie sich Ihre an
vsftpd.conf
.write_enable
muss true sein, um das Schreiben zuzulassen (und es ist standardmäßig false). Es gibt eine gute Dokumentation zu dieser Konfigurationsdatei unterman 5 vsftpd.conf
.quelle
Könntest du das versuchen?
quelle
Der Befehl
ftp put /path/to/local_file
funktioniert nicht mitvsftpd
. Versuche Folgendes:Sie können einen beliebigen Namen für den auswählen
remote_file_name
, müssen jedoch einen angeben.quelle
/path/to/
) auf dem Server nicht vorhanden ist (und / oder nicht über die FTP-Sitzung zugegriffen werden kann). Dies ist der Grund, warumftp put local_file
dies ohne explizites Ziel funktioniert. (Hinweis: Überprüfen Sie dielocal: … remote: …
Zeile im FTP-Client.)Das FTP-Basisverzeichnis (ftp_home_dir) ist in SeLinux höchstwahrscheinlich deaktiviert. Um den Status Ihrer
ftpd
Steuerdateiengetsebool -a
anzuzeigen , geben Sie Folgendes ein : und suchen Sie den Abschnitt ftpd. Möglicherweise stellen Sie fest, dass ftp_home_dir deaktiviert ist. Verwenden Sie zum Aktivieren den folgenden Befehl:setsebool -P ftp_home_dir=1
Überprüfen Sie Ihre Eingabe mit
getsebool -a
und wiederholen Sie den Upload.Hinweis: Ignorieren Sie die Satzzeichen
quelle
Ich hatte das gleiche Problem und habe das Ändern von SELinux behoben, um das Schreiben in dem Ordner zu ermöglichen, den ich für die Verwendung durch konfiguriert habe
vsftp = /var/ftp/pub
.Diese Links können hilfreich sein:
Wenn Sie mit Ihrem SELinux nicht weiter gehen möchten, ändern Sie es nicht, es wird als Standard angezeigt
/etc/selinux/config
dann führen Sie einfach die Befehle als root oder mit
sudo
:wie bereits oben in einem anderen Kommentar beschrieben.
quelle
Überprüfen Sie Ihre
vsftpd.conf
für diese Einstellung:Wenn es auf gesetzt ist
YES
, verursacht es auch die553 Could not create file
.Von: http://www.vsftpd.beasts.org/vsftpd_conf.html
quelle
Versuche dies
quelle
Eine andere Möglichkeit: Überprüfen Sie die Datenträgerkontingente für den Benutzer / die Gruppe
ext:
xfs:
quelle
Der nächste Parameter gibt ftpd Zugriff, um irgendwo zu schreiben:
Verwenden
ftpd_anon_write
Sie diese Option nur, wenn Sie anonyme Uploads zulassen möchten.quelle
Der Dateiname enthält wahrscheinlich nicht unterstützte Zeichen
quelle
Führen Sie für Fedora23 die folgenden Befehle aus:
Es hat bei mir funktioniert.
quelle