Beállítottam a vsftpd
szolgáltatást az Amazon EC2-en az Amazon Linux AMI-vel. Hoztam létre egy felhasználót, és Mostantól sikeresen csatlakozom az ftp-n keresztül. Ha azonban megpróbálok feltölteni valamit, akkor a hibaüzenet jelenik meg
553 Could not create file.
Feltételezem, hogy ez engedélyekkel kapcsolatos, de nem teszem lehetővé “nem tudok róla annyit, hogy kijavítsam. Tehát alapvetően mit kell tennem, hogy fájlokat tölthetek fel?
Megjegyzések
- Ellenőrizze a selinux beállításokat. állítsa be a logikai értéket az allow_ftpd_full_access értékre BE
- nekem ez a problémám volt, mert nem volt elég hely a fájlok megírásához.
Válasz
Ennek két valószínű oka lehet – nincs írási és végrehajtási jogosultsága azokon a könyvtárakon, amelyek a feltölteni kívánt könyvtárhoz vezetnek, vagy vsftpd
úgy van beállítva, hogy ne engedélyezze a feltöltést.
Az előbbi esetben használja a chmod
és a chown
a megfelelő módon, hogy megbizonyosodjon arról, hogy a felhasználó rendelkezik-e ezen engedélyekkel minden köztes könyvtárban. Az írási bit lehetővé teszi az érintett felhasználó számára, hogy fájlokat hozzon létre, átnevezzen vagy töröljön a könyvtárban, és módosítsa a könyvtár attribútumait, míg az olvasási bit lehetővé teszi az érintett felhasználó számára, hogy a fájlokat felsorolja a könyvtárban. Mivel az útvonalban lévő köztes könyvtárak is befolyásolja ezt, az engedélyeket megfelelően be kell állítani a végső célig, ahová feltölteni szándékozik.
Ez utóbbi esetben nézze meg a vsftpd.conf
fájlt. A write_enable
-nek igaznak kell lennie az írás engedélyezéséhez (és alapértelmezés szerint hamis). A man 5 vsftpd.conf
címen megfelelő dokumentáció található erről a konfigurációs fájlról. / p>
Megjegyzések
- Úgy tűnik, hogy egyik sem a probléma. Megpróbáltam mindent módosítani 777-re (nem biztonságos) és a beállításokat write_enable = YES, de még mindig megkapom ez a haszontalan hibaüzenet.
- @Cerin sikerült kijavítani? Ha igen, meg tudja-e osztani a részleteket?
Válasz
Kipróbálhatja ezt
chown -R ftpusername /var/www/html
Megjegyzések
- chmod 757 -R / var / www / html
- @Hern á nEche köszönöm a tippet, órák óta vadásztam, és ez végül kijavította a problémámat.
- Tudna részletezni a helyzetről, ez a szerveren van-e? vagy helyben?
- @Hern á nEche Hé, nekem is sikerült, de biztonságos. Nem volt ‘ t a 755-össel
- @Hern á nEche, ezt külön válaszként kell megadnia. A javaslatod nekem ott működött, ahol semmi más nem.
Válasz
A nem működik a következővel: vsftpd
. Próbálja ki a következőket:
ftp put /path/to/local_file remote_file_name
Bármelyiket választhatja kívánt név a remote_file_name
számára, de meg kell adnia egyet.
Megjegyzések
- Érdemes lehet fontolja meg, hogy további részleteket adjon a válaszához (például néhány olyan dokumentum, amely támogatja a megoldás ‘ s érvényességét).
- Ez azért történik, mert (és ha)
/path/to/
nincs ‘ nincs (és / vagy nincs ‘ hozzáférhető az FTP munkameneten keresztül) a szerver. Ezért aftp put local_file
kifejezett cél nélkül működik . (Tipp: ellenőrizze alocal: … remote: …
sort az FTP kliens.) - Nekem bevált! 🙂
Válasz
Az FTP otthoni könyvtár (ftp_home_dir) valószínűleg ki van kapcsolva a SeLinuxban. A ftpd
vezérlőfájlok állapotának megtekintéséhez tegye a következőket: getsebool -a
és keresse meg az ftpd szakaszt. Észreveheti, hogy az ftp_home_dir ki van kapcsolva. A bekapcsolásához használja a következő parancsot: setsebool -P ftp_home_dir=1
Ellenőrizze a bevitelt a getsebool -a
gombbal, majd próbálja meg a feltöltést újra.
Megjegyzés: Hagyd figyelmen kívül az írásjeleket
Válasz
Ugyanaz a probléma merült fel és javítottam a SELinux módosítását engedélyezem az írást az általam beállított mappában, hogy vsftp = /var/ftp/pub
használhassa.
Ezek a linkek hasznosak lehetnek:
- https://fedoraproject.org/wiki/SELinux/ftpd
- http://prithak.blogspot.com/2013/07/installation-and-configuration-of.html
Ha nem akarsz továbbmenni a SELinuxszal, akkor ne változtasd meg, így alapértelmezettként a /etc/selinux/config
SELINUX=enforcing
akkor csak futtassa a parancsokat root vagy sudo
paranccsal:
sudo setsebool -P ftpd_anon_write 1 sudo setsebool -P ftpd_full_access 1
ahogy fentebb már leírtuk más megjegyzésekben.
Válasz
Próbálja ki ezt
chmod 757 -R /var/www/html
Válasz
Ellenőrizze a vsftpd.conf
elemet ehhez a beállításhoz:
guest_enable=YES # set it to NO then restart the vsftpd service.
Ha YES
értékre van állítva, akkor a 553 Could not create file
-t is okozza.
: http://www.vsftpd.beasts.org/vsftpd_conf.html
guest_enable Ha engedélyezve van, akkor az összes nem névtelen bejelentkezés “vendég” bejelentkezésnek minősül. A vendég bejelentkezést a vendég_felhasználónév beállítása.
Alapértelmezés: NEM
Válasz
A következő paraméter megadja az ftpd hozzáférési jogát bárhová írni:
setsebool -P ftpd_full_acess=true
Ne használja a ftpd_anon_write
parancsot, hacsak nem szeretné, hogy engedélyezzék a névtelen feltöltéseket.
A nswer
Esetemben a fájlrendszerrel volt a probléma.
Szóköz volt, de a fájlrendszerből kifogytak az inodes df -i
# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvdf1 3276800 3276800 0 100% /ftp-data01
Válasz
Egy másik lehetőség: ellenőrizze a felhasználó / csoport
ext:
repquota -a
xfs:
xfs_quota -x -c "report" /mount_point
válasz
Valószínűleg nem támogatott karakterek vannak a fájlnévben
válasz
Az én esetemben az ftp felhasználónak nem voltak engedélyei abban a könyvtárban, amelybe a . / p>
Éppen elfelejtettem cd-t beírni a célkönyvtárba, amelyre megfelelő jogosultsággal rendelkeztem.
Válasz
Esetemben (CentOS7 + vsftpd) a címtárengedélyeket 775-re változtatom a ” chmod 775 / home / u A ser / ftpdir / ” nem segített.
A selinux állapotát a ” sestatus , engedélyezve volt, felsorolom az ftp-vel kapcsolatos opciókat: ” getsebool -a | grep ftp ”
és engedélyezte a letiltott ftpd_full_access opciót a ” setsebool ftpd_full_access paranccsal a ” paranccsal. Ezután elkezdte írni a fájlt.
Válasz
A Fedora23 esetében futtassa a következő parancsokat:
setsebool -P ftpd_anon_write 1 setsebool -P ftpd_full_access 1
Nekem bevált.