VSFTPD, 553 Nu s-a putut crea fișierul. – permisiuni?

Am „configurat vsftpd pe Amazon EC2 cu Amazon Linux AMI. Am creat un utilizator și pot acum mă conectez cu succes prin ftp. Cu toate acestea, dacă încerc să încarc ceva primesc mesajul de eroare

553 Could not create file. 

Presupun că acest lucru are legătură cu permisiunile, dar nu „Nu știu suficient despre asta pentru a putea remedia problema. Deci, în principiu, ce trebuie să fac pentru a putea încărca fișiere?

Comentarii

  • Verificați setările selinux. configurați boolean allow_ftpd_full_access la ACTIVAT
  • Am avut această problemă deoarece nu era suficient spațiu pentru a scrie fișierele.

Răspuns

Există două motive probabile pentru care acest lucru s-ar putea întâmpla – nu aveți permisiuni de scriere și executare în directoarele care duc la directorul în care încercați să încărcați sau vsftpd este configurat să nu vă permită încărcarea.

În primul caz, utilizați chmod și chown după caz pentru a vă asigura că utilizatorul dvs. are aceste permisiuni pentru fiecare director intermediar. Bitul de scriere permite utilizatorului afectat să creeze, să redenumească sau să șteargă fișiere din director și să modifice atributele directorului, în timp ce bitul de citire permite utilizatorului afectat să listeze fișierele din director. afectează acest lucru, permisiunile trebuie să fie setate în mod corespunzător pentru a ajunge la destinația finală pe care intenționați să o încărcați.

În acest din urmă caz, consultați vsftpd.conf. write_enable trebuie să fie adevărat pentru a permite scrierea (și este fals în mod implicit). Există o documentație bună despre acest fișier de configurare la man 5 vsftpd.conf.

Comentarii

  • Niciunul dintre acestea nu pare să fie problema. Am încercat să modific totul la 777 (nesigur) și setările write_enable = YES, dar totuși primesc acest mesaj de eroare inutil.
  • @Cerin ați reușit să îl remediați? Dacă da, puteți împărtăși detaliile?

Răspundeți

Ați putea încerca acest lucru

chown -R ftpusername /var/www/html 

Comentarii

  • chmod 757 -R / var / www / html
  • @Hern á nEche mulțumesc pentru sfat, căutam ore în șir și în cele din urmă am rezolvat problema mea.
  • Ați putea să detaliați situația, este aceasta pe server? sau local?
  • @Hern á nEche Hei, a funcționat și pentru mine, dar este sigur. ‘ nu funcționa cu 755
  • @Hern á nEche ar trebui să faceți din acesta un răspuns separat. Sugestia dvs. a funcționat pentru mine acolo unde nimic altceva nu a funcționat.

Răspuns

Comanda ftp put /path/to/local_file nu funcționează cu vsftpd. Încercați următoarele:

ftp put /path/to/local_file remote_file_name 

Puteți alege oricare numele pe care îl doriți pentru remote_file_name, dar trebuie să specificați unul.

Comentarii

  • S-ar putea să doriți să luați în considerare adăugarea mai multor detalii la răspunsul dvs. (de exemplu, o documentație care acceptă validitatea soluției dvs. ‘).
  • Acest lucru se întâmplă deoarece (și dacă) /path/to/ nu există ‘ nu există (și / sau nu este ‘ t accesibil prin sesiunea FTP) pe serverul. Acesta este motivul pentru care ftp put local_file funcționează fără destinație explicită. (Sugestie: verificați linia local: … remote: … în clientul FTP.)
  • A funcționat pentru mine! 🙂

Răspunde

Directorul principal FTP (ftp_home_dir) este cel mai probabil dezactivat în SeLinux. Pentru a vedea starea fișierelor de control ftpd, emiteți: getsebool -a și localizați secțiunea ftpd. Este posibil să observați că ftp_home_dir este dezactivat. Pentru a-l activa, utilizați următoarea comandă: setsebool -P ftp_home_dir=1

Verificați intrarea utilizând getsebool -a, apoi Încercați încărcarea din nou.

Notă: ignorați semnele de punctuație

Răspuns

Am avut aceeași problemă și am rezolvat schimbarea SELinux în permite scrierea în folderul pe care l-am configurat pentru a fi folosit de vsftp = /var/ftp/pub.

Aceste linkuri pot fi utile:

Dacă nu doriți să mergeți mai departe cu SELinux, nu îl modificați, așa că veți vedea ca implicit /etc/selinux/config

SELINUX=enforcing 

apoi rulați comenzile ca root sau cu sudo:

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

așa cum s-a descris deja mai sus în alte comentarii.

Răspuns

Încercați acest lucru

chmod 757 -R /var/www/html 

Răspunde

Verifică vsftpd.conf pentru această setare:

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

Dacă este setat la YES, va provoca și 553 Could not create file.

De la : http://www.vsftpd.beasts.org/vsftpd_conf.html

guest_enable Dacă este activat, toate datele de conectare non-anonime sunt clasificate ca date de conectare „guest”. setare nume_uspital.

Implicit: NU

Răspuns

Următorul parametru va oferi acces ftpd pentru a scrie oriunde:

setsebool -P ftpd_full_acess=true 

Nu utilizați ftpd_anon_write decât dacă doriți să fie permise încărcări anonime.

nswer

În cazul meu, problema a fost cu sistemul de fișiere.

A existat un spațiu, dar sistemul de fișiere a rămas fără inoduri df -i

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

Răspuns

O altă posibilitate: verificați cotele de disc pentru utilizator / grup

ext:

repquota -a 

xfs:

xfs_quota -x -c "report" /mount_point 

Răspuns

Este posibil să aveți caractere neacceptate în numele fișierului

Răspuns

În cazul meu, utilizatorul ftp nu avea permisiuni în directorul în care se afla .

Tocmai uitasem să cd în directorul țintă, pentru care am permisiunile potrivite.

Răspuns

În cazul meu (CentOS7 + vsftpd) schimbarea permisiunilor directorului la 775 prin comanda ” chmod 775 / home / u ser / ftpdir / ” nu a fost ajutat.

Am verificat starea selinux prin comanda ” sestatus „, a fost activat, listez opțiunile legate de ftp: ” getsebool -a | grep ftp ”

și a activat opțiunea dezactivată ftpd_full_access prin comanda ” setsebool ftpd_full_access pe „. Apoi a început să scrie fișierul.

Răspuns

Pentru Fedora23 executați comenzile:

setsebool -P ftpd_anon_write 1 setsebool -P ftpd_full_access 1 

A funcționat pentru mine.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *