VSFTPD, 553 Kunne ikke oprette fil. – tilladelser?

Jeg har oprettet vsftpd på Amazon EC2 med Amazon Linux AMI. Jeg oprettede en bruger og kan Tilslut nu med succes via ftp. Men hvis jeg prøver at uploade noget, får jeg fejlmeddelelsen

553 Could not create file. 

Jeg antager, at dette har at gøre med tilladelser, men jeg ved ikke “ved ikke nok om det til at kunne ordne det. Så dybest set, hvad skal jeg gøre for at kunne uploade filer?

Kommentarer

  • Kontroller selinux-indstillingerne. konfigurer boolesk allow_ftpd_full_access til ON
  • Jeg havde dette problem, fordi der ikke var nok plads til at skrive filerne.

Svar

Der er to sandsynlige grunde til, at dette kan ske – du har ikke skrive- og eksekveringstilladelser til de mapper, der fører til den mappe, du prøver at uploade til, eller vsftpd er konfigureret til ikke at tillade dig at uploade.

I det tidligere tilfælde skal du bruge chmod og chown alt efter hvad der er relevant for at sikre, at din bruger har disse tilladelser i hver mellemliggende mappe. Skrivbitten giver den berørte bruger mulighed for at oprette, omdøbe eller slette filer i biblioteket og ændre katalogets attributter, mens læsebiten giver den berørte bruger mulighed for at liste filerne i biblioteket. Da mellemliggende mapper i stien også påvirker dette, skal tilladelserne indstilles korrekt op til den ultimative destination, som du agter at uploade til.

I sidstnævnte tilfælde skal du se på din vsftpd.conf. write_enable skal være sandt for at tillade skrivning (og det er som standard falsk). Der er god dokumentation for denne konfigurationsfil på man 5 vsftpd.conf.

Kommentarer

  • Ingen af disse ser ud til at være problemet. Jeg prøvede at ændre alt til 777 (usikker) og indstillinger write_enable = YES, men jeg får stadig denne ubrugelige fejlmeddelelse.
  • @Cerin var du i stand til at rette det? Hvis ja, kan du dele detaljerne?

Svar

Kan du prøve dette

chown -R ftpusername /var/www/html 

Kommentarer

  • chmod 757 -R / var / www / html
  • @Hern á nEche tak for tipet, jeg havde jagtet i timevis, og dette fik endelig mit problem løst.
  • Kan du uddybe situationen, er dette på serveren eller lokalt?
  • @Hern á nEche Hej, det fungerede også for mig, men er det sikkert. Det fungerede ‘ t med 755
  • @Hern á nEche, du skal gøre dette til et separat svar. Dit forslag fungerede for mig, hvor intet andet gjorde.

Svar

Kommandoen ftp put /path/to/local_file fungerer ikke med vsftpd. Prøv følgende:

ftp put /path/to/local_file remote_file_name 

Du kan vælge en hvilken som helst navn, du ønsker for remote_file_name, men du skal angive et.

Kommentarer

  • at overveje at tilføje flere detaljer til dit svar (for eksempel noget dokumentation, der understøtter din løsning ‘ s gyldighed).
  • Dette sker fordi (og hvis) /path/to/ findes ‘ t (og / eller er ikke ‘ t tilgængelig via FTP-sessionen) på serveren. Det er grunden til, at ftp put local_file fungerer uden eksplicit destination. (Tip: tjek local: … remote: … -linjen i FTP-klienten.)
  • Det fungerede for mig! 🙂

Svar

FTP-hjemmemappen (ftp_home_dir) er sandsynligvis slået fra i SeLinux. For at se status for dine ftpd kontrolfiler, skal du udstede: getsebool -a og finde ftpd-sektionen. Du bemærker muligvis, at ftp_home_dir er slået fra. For at slå den til skal du bruge følgende kommando: setsebool -P ftp_home_dir=1

Bekræft dit input ved hjælp af getsebool -a, og prøv derefter at uploade igen.

Bemærk: Ignorer tegnsætningstegn

Svar

Jeg havde det samme problem og fik ændret SELinux til tillad skrivning i den mappe, jeg konfigurerede til at blive brugt af vsftp = /var/ftp/pub.

Disse links kan være nyttige:

Hvis du ikke vil gå længere med din SELinux, skal du ikke ændre det, så du vil se som standard /etc/selinux/config

SELINUX=enforcing 

så kør bare kommandoerne som root eller med sudo:

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

som allerede beskrevet ovenfor i anden kommentar.

Svar

Prøv dette

chmod 757 -R /var/www/html 

Svar

Kontroller din vsftpd.conf for denne indstilling:

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

Hvis det er indstillet til YES, vil det også forårsage 553 Could not create file.

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

guest_enable Hvis det er aktiveret, klassificeres alle ikke-anonyme login som “gæst” -logins. Et gæstelogin tilføres den bruger, der er angivet i indstilling af gæstens brugernavn.

Standard: NO

Svar

Den næste parameter giver ftpd adgang til at skrive hvor som helst:

setsebool -P ftpd_full_acess=true 

Brug ikke ftpd_anon_write, medmindre du vil have anonyme uploads.

A nswer

I mit tilfælde var problemet med filsystem.

Der var et mellemrum, men filsystemet løb tør for inoder df -i

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

Svar

En anden mulighed: Kontroller diskkvoter for bruger / gruppe

ext:

repquota -a 

xfs:

xfs_quota -x -c "report" /mount_point 

Svar

Du har sandsynligvis ikke-understøttede tegn i filnavn

Svar

I mit tilfælde ftp-brugeren havde ingen tilladelser i biblioteket, det var i .

Jeg havde lige glemt at cd i målmappen, som jeg havde de rigtige tilladelser til.

Svar

I mit tilfælde (CentOS7 + vsftpd) ændrer bibliotektilladelser til 775 ved kommando ” chmod 775 / home / u ser / ftpdir / ” hjalp ikke.

Jeg kontrollerede selinux status ved kommando ” sestatus “, det var aktiveret, jeg viser ftp relaterede indstillinger: ” getsebool -a | grep ftp ”

og aktiverede den deaktiverede indstilling ftpd_full_access ved kommando ” setsebool ftpd_full_access på “. Derefter begyndte det at skrive filen.

Svar

For Fedora23 skal du køre kommandoerne:

setsebool -P ftpd_anon_write 1 setsebool -P ftpd_full_access 1 

Det fungerede for mig.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *