Ik “heb vsftpd
opgezet op Amazon EC2 met de Amazon Linux AMI. Ik heb een gebruiker gemaakt en kan nu met succes verbinding maken via ftp. Als ik echter iets probeer te uploaden, krijg ik de foutmelding
553 Could not create file.
Ik neem aan dat dit te maken heeft met permissies, maar dat doe ik niet “Ik weet er niet genoeg van om het te kunnen repareren. Dus wat moet ik eigenlijk doen om bestanden te kunnen uploaden?
Reacties
- Controleer de selinux-instellingen. stel boolean allow_ftpd_full_access in op ON
- ik had dit probleem omdat er niet genoeg ruimte was om de bestanden te schrijven.
Answer
Er zijn twee waarschijnlijke redenen waarom dit zou kunnen gebeuren: u heeft geen schrijf- en uitvoeringsrechten voor de mappen die leiden naar de map waarnaar u probeert te uploaden, of vsftpd
is zo geconfigureerd dat u niet kunt uploaden.
Gebruik in het eerste geval chmod
en chown
om er zeker van te zijn dat uw gebruiker deze rechten heeft op elke tussenliggende map. Met de schrijfbit kan de getroffen gebruiker bestanden in de directory maken, hernoemen of verwijderen en de attributen van de directory wijzigen, terwijl de leesbit de getroffen gebruiker in staat stelt om de bestanden in de directory weer te geven. invloed hierop hebben, moeten de rechten op de juiste manier worden ingesteld in de aanloop naar de uiteindelijke bestemming waarnaar u wilt uploaden.
Kijk in het laatste geval naar uw vsftpd.conf
. write_enable
moet waar zijn om schrijven toe te staan (en het is standaard false). Er is goede documentatie over dit configuratiebestand op man 5 vsftpd.conf
.
Reacties
- Geen van beide lijkt het probleem te zijn. Ik heb geprobeerd alles te wijzigen naar 777 (onveilig) en de instellingen write_enable = YES, maar ik krijg nog steeds deze nutteloze foutmelding.
- Heeft @Cerin het kunnen repareren? Zo ja, kunt u de details delen?
Antwoord
Zou je dit kunnen proberen
chown -R ftpusername /var/www/html
Reacties
- chmod 757 -R / var / www / html
- @Hern á nee bedankt voor de tip, ik was uren aan het jagen en dit loste eindelijk mijn probleem op.
- Kun je de situatie toelichten, staat dit op de server of lokaal?
- @Hern á nee Hey, het werkte ook voor mij, maar is het veilig. Het was niet ‘ om met 755 te werken
- @Hern á Nee, je zou hier een apart antwoord van moeten maken. Uw suggestie werkte voor mij waar niets anders deed.
Antwoord
Het commando ftp put /path/to/local_file
werkt niet met vsftpd
. Probeer het volgende:
ftp put /path/to/local_file remote_file_name
U kunt elke naam die u wenst voor de remote_file_name
, maar u moet er een specificeren.
Opmerkingen
- Misschien wilt u om te overwegen meer details aan uw antwoord toe te voegen (bijvoorbeeld documentatie die uw oplossing ‘ s validiteit ondersteunt).
- Dit gebeurt omdat (en als)
/path/to/
bestaat niet ‘ niet (en / of is niet ‘ toegankelijk via de FTP-sessie) op de server. Dit is waaromftp put local_file
werkt zonder expliciete bestemming. (Hint: controleer delocal: … remote: …
regel in de FTP-client.) - Het werkte voor mij! 🙂
Answer
De FTP-homedirectory (ftp_home_dir) is hoogstwaarschijnlijk uitgeschakeld in SeLinux. Om de status van uw ftpd
controlebestanden te zien, geeft u het volgende op: getsebool -a
en zoekt u de ftpd-sectie. Het kan zijn dat ftp_home_dir is uitgeschakeld. Gebruik de volgende opdracht om het in te schakelen: setsebool -P ftp_home_dir=1
Verifieer je invoer met getsebool -a
, en probeer vervolgens te uploaden nog een keer.
Opmerking: negeer de leestekens
Answer
Ik had hetzelfde probleem en ik loste het wijzigen van SELinux op schrijven in de map die ik heb geconfigureerd voor gebruik door vsftp = /var/ftp/pub
.
Deze links kunnen nuttig zijn:
- https://fedoraproject.org/wiki/SELinux/ftpd
- http://prithak.blogspot.com/2013/07/installation-and-configuration-of.html
Als je niet verder wilt gaan met je SELinux, verander het dan niet, dus je zult zien als standaard /etc/selinux/config
SELINUX=enforcing
voer dan de opdrachten uit als root of met sudo
:
sudo setsebool -P ftpd_anon_write 1 sudo setsebool -P ftpd_full_access 1
zoals hierboven al beschreven in een andere opmerking.
Antwoord
Probeer dit
chmod 757 -R /var/www/html
Answer
Controleer uw vsftpd.conf
voor deze instelling:
guest_enable=YES # set it to NO then restart the vsftpd service.
Als het is ingesteld op YES
, zal het ook de 553 Could not create file
veroorzaken.
Van : http://www.vsftpd.beasts.org/vsftpd_conf.html
guest_enable Indien ingeschakeld, worden alle niet-anonieme aanmeldingen geclassificeerd als “gast” aanmeldingen. Een gastaanmelding wordt opnieuw toegewezen aan de gebruiker die is opgegeven in de guest_username instelling.
Standaard: NO
Antwoord
De volgende parameter geeft ftpd toegang om overal te schrijven:
setsebool -P ftpd_full_acess=true
Gebruik ftpd_anon_write
niet tenzij u wilt dat anonieme uploads worden toegestaan.
A nswer
In mijn geval was het probleem met het bestandssysteem.
Er was een spatie maar het bestandssysteem heeft geen inodes meer df -i
# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvdf1 3276800 3276800 0 100% /ftp-data01
Answer
Een andere mogelijkheid: controleer de schijfquota voor de gebruiker / groep
ext:
repquota -a
xfs:
xfs_quota -x -c "report" /mount_point
Answer
Je hebt waarschijnlijk niet-ondersteunde tekens in de bestandsnaam
Answer
In mijn geval had de ftp-gebruiker geen permissies in de directory waarin deze zich bevond .
Ik was net vergeten naar de doeldirectory te gaan, waarvoor ik de juiste rechten had.
Antwoord
In mijn geval (CentOS7 + vsftpd) verander ik de directory permissies naar 775 met het commando ” chmod 775 / home / u ser / ftpdir / ” niet geholpen.
Ik heb de selinux-status gecontroleerd met het commando ” sestatus “, het was ingeschakeld, ik vermeld ftp-gerelateerde opties: ” getsebool -a | grep ftp ”
en de uitgeschakelde optie ftpd_full_access ingeschakeld met het commando ” setsebool ftpd_full_access op “. Toen begon het met het schrijven van het bestand.
Answer
Voor Fedora23 voer je de volgende commandos uit:
setsebool -P ftpd_anon_write 1 setsebool -P ftpd_full_access 1
Het werkte voor mij.