VSFTPD, 553 Det gick inte att skapa filen. – behörigheter?

Jag har ställt in vsftpd på Amazon EC2 med Amazon Linux AMI. Jag skapade en användare och kan Anslut nu framgångsrikt via ftp. Men om jag försöker ladda upp något får jag felmeddelandet

553 Could not create file. 

Jag antar att detta har att göra med behörigheter, men jag gör inte ”vet inte tillräckligt om det för att kunna fixa det. Så i grund och botten, vad måste jag göra för att kunna ladda upp filer?

Kommentarer

  • Kontrollera selinux-inställningarna. konfigurera boolesk allow_ftpd_full_access till PÅ
  • Jag hade det här problemet eftersom det inte fanns tillräckligt med utrymme för att skriva filerna.

Svar

Det finns två troliga orsaker till att detta kan hända – du har inte skriv- och körbehörigheter för de kataloger som leder till katalogen du försöker ladda upp till, eller vsftpd är konfigurerad så att du inte kan ladda upp.

I det tidigare fallet använder du chmod och chown för att se till att din användare har dessa behörigheter i varje mellanliggande katalog. Skrivbiten gör det möjligt för den drabbade användaren att skapa, byta namn på eller ta bort filer i katalogen och ändra katalogens attribut, medan läsbiten tillåter den drabbade användaren att lista filer i katalogen. Eftersom mellanliggande kataloger i sökvägen också påverkar detta måste behörigheterna ställas in på rätt sätt fram till den slutliga destinationen som du tänker ladda upp till.

I det senare fallet, titta på din vsftpd.conf. write_enable måste vara sant för att tillåta skrivning (och det är som standard falskt). Det finns god dokumentation på denna konfigurationsfil på man 5 vsftpd.conf.

Kommentarer

  • Ingen av dessa verkar vara problemet. Jag försökte chmoding allt till 777 (osäker) och inställningar write_enable = YES, men jag får fortfarande detta värdelösa felmeddelande.
  • @Cerin kunde du åtgärda det? Om ja, kan du dela detaljerna?

Svara

Kan du prova det här

chown -R ftpusername /var/www/html 

Kommentarer

  • chmod 757 -R / var / www / html
  • @Hern á nEche tack för tipset, jag hade jagat i timmar och detta fixade äntligen mitt problem.
  • Kan du utarbeta situationen, är det här på servern eller lokalt?
  • @Hern á nEche Hej, det fungerade också för mig, men är det säkert. Det fungerade inte ’ med 755
  • @Hern á nEche du borde göra detta till ett separat svar. Ditt förslag fungerade för mig där inget annat gjorde.

Svar

Kommandot ftp put /path/to/local_file fungerar inte med vsftpd. Försök med följande:

ftp put /path/to/local_file remote_file_name 

Du kan välja valfri namn du vill ha remote_file_name, men du måste ange ett.

Kommentarer

  • Du kanske vill att överväga att lägga till mer detaljer i ditt svar (till exempel viss dokumentation som stöder din lösning ’ s giltighet).
  • Detta händer för att (och om) /path/to/ existerar ’ t (och / eller finns inte ’ t tillgängligt via FTP-sessionen) på servern. Det är därför som ftp put local_file fungerar utan en uttrycklig destination. (Tips: kontrollera local: … remote: … -raden FTP-klienten.)
  • Det fungerade för mig! 🙂

Svar

FTP-hemkatalogen (ftp_home_dir) är troligen avstängd i SeLinux. För att se status för dina ftpd kontrollfiler, utfärda: getsebool -a och leta reda på ftpd-avsnittet. Du kanske märker att ftp_home_dir är avstängd. Använd följande kommando för att slå på den: setsebool -P ftp_home_dir=1

Verifiera din inmatning med getsebool -a och försök sedan ladda upp igen.

Obs! Ignorera skiljetecken

Svar

Jag hade samma problem och fixade att ändra SELinux till tillåt skrivning i den mapp jag konfigurerade för att användas av vsftp = /var/ftp/pub.

Dessa länkar kan vara till hjälp:

Om du inte vill gå längre med din SELinux ska du inte ändra den, så du ser som standard /etc/selinux/config

SELINUX=enforcing 

kör bara kommandona som root eller med sudo:

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

som redan beskrivits ovan i annan kommentar.

Svar

Prova detta

chmod 757 -R /var/www/html 

Svar

Kontrollera din vsftpd.conf för den här inställningen:

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

Om den är inställd på YES kommer det också att orsaka 553 Could not create file.

Från : http://www.vsftpd.beasts.org/vsftpd_conf.html

gäst_aktivera Om aktiverat klassas alla icke-anonyma inloggningar som ”gäst” -inloggningar. En gästinloggning omplaceras till den användare som anges i gäst_användarnamn.

Standard: NO

Svar

Nästa parameter ger ftpd åtkomst att skriva var som helst:

setsebool -P ftpd_full_acess=true 

Använd inte ftpd_anon_write om du inte vill att anonyma uppladdningar ska tillåtas.

A nswer

I mitt fall var problemet med filsystemet.

Det fanns ett mellanslag men filsystemet hade slut på inoder df -i

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

Svar

En annan möjlighet: kontrollera diskkvoter för användare / grupp

ext:

repquota -a 

xfs:

xfs_quota -x -c "report" /mount_point 

Svar

Det är troligt att du har tecken som inte stöds i filnamn

Svar

I mitt fall hade ftp-användaren inga behörigheter i katalogen den var i .

Jag hade precis glömt att cd till målkatalogen, som jag hade rätt behörigheter för.

Svar

I mitt fall (CentOS7 + vsftpd) ändrar katalogbehörigheter till 775 med kommando ” chmod 775 / home / u ser / ftpdir / ” hjälpte inte.

Jag kontrollerade selinux-status med kommando ” sestatus ”, det var aktiverat, jag listar ftp-relaterade alternativ: ” getsebool -a | grep ftp ”

och aktiverade det inaktiverade alternativet ftpd_full_access med kommandot ” setsebool ftpd_full_access på ”. Sedan började den skriva filen.

Svar

För Fedora23 kör du kommandona:

setsebool -P ftpd_anon_write 1 setsebool -P ftpd_full_access 1 

Det fungerade för mig.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *