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 careftp put local_file
funcționează fără destinație explicită. (Sugestie: verificați linialocal: … 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:
- https://fedoraproject.org/wiki/SELinux/ftpd
- http://prithak.blogspot.com/2013/07/installation-and-configuration-of.html
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.