VSFTPD, 553 Kunne ikke opprette fil. – tillatelser?

Jeg har satt opp vsftpd på Amazon EC2 med Amazon Linux AMI. Jeg opprettet en bruker og kan nå vellykket tilkobling via ftp. Hvis jeg prøver å laste opp noe, får jeg imidlertid feilmeldingen

553 Could not create file. 

Jeg antar at dette har å gjøre med tillatelser, men jeg «vet ikke nok om det til å kunne fikse det. Så i grunn, hva må jeg gjøre for å kunne laste opp filer?

Kommentarer

  • Sjekk selinux-innstillingene. konfigurer boolsk allow_ftpd_full_access til PÅ
  • Jeg hadde dette problemet fordi det ikke var nok plass til å skrive filene.

Svar

Det er to sannsynlige årsaker til at dette kan skje – du har ikke skrivetilgang og utfører tillatelser til katalogene som fører til katalogen du prøver å laste opp til, eller vsftpd er konfigurert til ikke å la deg laste opp.

I det første tilfellet bruker du chmod og chown etter behov for å forsikre deg om at brukeren har disse tillatelsene i hver mellomliggende katalog. Skrivbiten lar den berørte brukeren opprette, gi nytt navn eller slette filer i katalogen, og endre katalogens attributter, mens lesebiten lar den berørte brukeren liste opp filene i katalogen. Siden mellomliggende kataloger i banen også påvirker dette, må tillatelsene settes riktig førende til det endelige målet du har tenkt å laste opp til.

I sistnevnte tilfelle, se på vsftpd.conf. write_enable må være sant for å tillate skriving (og det er falskt som standard). Det er god dokumentasjon på denne konfigurasjonsfilen på man 5 vsftpd.conf.

Kommentarer

  • Ingen av disse ser ut til å være problemet. Jeg prøvde å endre alt til 777 (usikkert) og innstillinger write_enable = YES, men jeg får fortsatt denne ubrukelige feilmeldingen.
  • @Cerin klarte du å fikse det? Hvis ja, kan du dele detaljene?

Svar

Kan du prøve dette

chown -R ftpusername /var/www/html 

Kommentarer

  • chmod 757 -R / var / www / html
  • @Hern á nEche takk for tipset, jeg hadde jaktet på i timevis, og dette løste endelig problemet mitt.
  • Kan du utdype situasjonen, er dette på serveren eller lokalt?
  • @Hern á nEche Hei, det fungerte også for meg, men er det sikkert. Det jobbet ikke ‘ med 755
  • @Hern á nEch du bør gjøre dette til et eget svar. Forslaget ditt virket for meg der ingenting annet gjorde det.

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 velge hvilken som helst navnet du ønsker for remote_file_name, men du må angi et.

Kommentarer

  • Du vil kanskje å vurdere å legge til mer detaljer i svaret ditt (for eksempel noe dokumentasjon som støtter løsningen din ‘ s gyldighet).
  • Dette skjer fordi (og hvis) /path/to/ eksisterer ikke ‘ t (og / eller er ikke ‘ t tilgjengelig gjennom FTP-sesjonen) på serveren. Dette er grunnen til at ftp put local_file fungerer uten eksplisitt mål. (Hint: sjekk local: … remote: … -linjen i FTP-klienten.)
  • Det fungerte for meg! 🙂

Svar

FTP-hjemmekatalogen (ftp_home_dir) er mest sannsynlig slått av i SeLinux. For å se status for ftpd -kontrollfilene, utsteder du: getsebool -a og finner ftpd-delen. Du vil kanskje legge merke til at ftp_home_dir er slått av. For å slå den på, bruk følgende kommando: setsebool -P ftp_home_dir=1

Bekreft inndataene dine ved hjelp av getsebool -a, og prøv deretter å laste opp en gang til.

Merk: Ignorer skilletegnene

Svar

Jeg hadde samme problem og fikset å endre SELinux til tillat skriving i mappen jeg konfigurerte for å bli brukt av vsftp = /var/ftp/pub.

Disse lenkene kan være nyttige:

Hvis du ikke vil gå lenger med SELinux, må du ikke endre det, så du vil se som standard /etc/selinux/config

SELINUX=enforcing 

så kjør du bare kommandoene som root eller med sudo:

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

som allerede beskrevet ovenfor i annen kommentar.

Svar

Prøv dette

chmod 757 -R /var/www/html 

Svar

Sjekk vsftpd.conf for denne innstillingen:

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

Hvis det er satt til YES, vil det også føre til at 553 Could not create file.

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

guest_enable Hvis aktivert, klassifiseres alle ikke-anonyme pålogginger som «gjest» -innlogginger. En gjestepålogging tilordnes til brukeren som er angitt i innstilling for gjestens brukernavn.

Standard: NO

Svar

Neste parameter vil gi ftpd tilgang til å skrive hvor som helst:

setsebool -P ftpd_full_acess=true 

Ikke bruk ftpd_anon_write med mindre du vil ha anonyme opplastninger.

A nswer

I mitt tilfelle var problemet med filsystem.

Det var et mellomrom, men filsystemet gikk tom for inoder df -i

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

Svar

En annen mulighet: sjekk diskkvoter for bruker / gruppe

ext:

repquota -a 

xfs:

xfs_quota -x -c "report" /mount_point 

Svar

Det er sannsynlig at du ikke har tegn som støttes i filnavnet

Svar

I mitt tilfelle hadde ftp-brukeren ingen tillatelser i katalogen den var i .

Jeg hadde nettopp glemt å cd inn i målkatalogen, som jeg hadde de rette tillatelsene for.

Svar

I mitt tilfelle (CentOS7 + vsftpd) endrer katalogtillatelser til 775 etter kommando » chmod 775 / home / u ser / ftpdir / » hjalp ikke.

Jeg sjekket selinux-status ved kommando » sestatus «, det var aktivert, jeg lister opp ftp relaterte alternativer: » getsebool -a | grep ftp »

og aktivert det deaktiverte alternativet ftpd_full_access ved kommando » setsebool ftpd_full_access på «. Så begynte det å skrive filen.

Svar

For Fedora23 kjører du kommandoene:

setsebool -P ftpd_anon_write 1 setsebool -P ftpd_full_access 1 

Det fungerte for meg.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *