Olen määrittänyt vsftpd
Amazon EC2: een Amazon Linux AMI: n kanssa. Loin käyttäjän ja voin Yhdistä nyt onnistuneesti ftp: n kautta. Jos kuitenkin yritän ladata jotain, saan virheilmoituksen
553 Could not create file.
Oletan, että tämä liittyy käyttöoikeuksiin, mutta en ”En tiedä siitä tarpeeksi voidaksesi korjata sen. Joten mitä minun on tehtävä, jotta voin ladata tiedostoja?
Kommentit
- Tarkista selinux-asetukset. määritä looginen allow_ftpd_full_access asetukseksi PÄÄLLÄ
- minulla oli tämä ongelma, koska tiedostojen kirjoittamiseen ei ollut tarpeeksi tilaa.
Vastaa
Tähän voi olla kaksi todennäköistä syytä: sinulla ei ole kirjoitus- ja suoritusoikeuksia hakemistoon, joka johtaa hakemistoon, johon yrität lähettää, tai vsftpd
on määritetty sallimatta lataamista.
Edellisessä tapauksessa käytä chmod
ja chown
tarpeen mukaan varmistaaksesi, että käyttäjälläsi on nämä oikeudet jokaisessa välihakemistossa. Kirjoitusbitti antaa asianomaiselle käyttäjälle mahdollisuuden luoda, nimetä uudelleen tai poistaa tiedostoja hakemistossa ja muokata hakemiston määritteitä, kun taas lukubitti antaa asianomaiselle käyttäjälle mahdollisuuden luetella tiedostot hakemistossa. Koska polun välihakemistot myös vaikuttaa tähän, käyttöoikeudet on asetettava asianmukaisesti lopulliseen määränpäähän, johon aiot lähettää.
Jälkimmäisessä tapauksessa katso vsftpd.conf
. write_enable
on oltava totta kirjoituksen sallimiseksi (ja se on oletusarvoisesti väärä). Tällä kokoonpanotiedostolla on hyvät ohjeet osoitteessa man 5 vsftpd.conf
.
Kommentit
- Kumpikaan näistä ei näytä olevan ongelma. Yritin muuttaa kaikki arvoksi 777 (vaarallinen) ja asetukset write_enable = YES, mutta saan silti tämä hyödytön virheilmoitus.
- Pystyitkö korjaamaan @Cerin? Jos kyllä, voitko jakaa yksityiskohdat?
Vastaa
Voisitko kokeilla tätä
chown -R ftpusername /var/www/html
Kommentit
- chmod 757 -R / var / www / html
- @Hern á nEche kiitos vihjeestä, olin metsästänyt tuntikausia ja tämä lopulta korjasi ongelmani.
- Voisitteko kertoa tarkemmin tilanteesta, onko tämä palvelimella vai paikallisesti?
- @Hern á nEche Hei, se toimi myös minulle, mutta onko se turvallista. Se ei ollut ’ t, joka työskenteli 755: n kanssa
- @Hern á nEche, sinun tulee antaa tämä erillinen vastaus. Ehdotuksesi toimi minulle, missä mikään muu ei toiminut.
Vastaus
Komento ftp put /path/to/local_file
ei toimi vsftpd
kanssa. Kokeile seuraavaa:
ftp put /path/to/local_file remote_file_name
Voit valita minkä tahansa haluamasi nimi remote_file_name
, mutta sinun on määritettävä yksi.
Kommentit
- Haluat ehkä harkitse tarkempien vastausten lisäämistä (esimerkiksi joitain asiakirjoja, jotka tukevat ratkaisusi pätevyyttä ’ s).
- Tämä tapahtuu, koska (ja jos)
/path/to/
ei ole ’ ei ole (ja / tai ei ’ pääse FTP-istunnon kautta) palvelin. Siksiftp put local_file
toimii ilman nimenomaista kohdetta. (Vihje: tarkista rivilocal: … remote: …
FTP-asiakasohjelma.) - Se toimi minulle! 🙂
Vastaa
FTP-kotihakemisto (ftp_home_dir) on todennäköisesti pois päältä SeLinuxissa. Jos haluat nähdä ftpd
-ohjaustiedostojesi tilan, anna ongelma: getsebool -a
ja etsi ftpd-osio. Saatat huomata, että ftp_home_dir on pois päältä. Kytke se päälle seuraavalla komennolla: setsebool -P ftp_home_dir=1
Vahvista syötteesi käyttämällä getsebool -a
ja kokeile sitten lähetystä uudelleen.
Huomaa: Ohita välimerkit
Vastaa
Minulla oli sama ongelma ja korjasin SELinuxin vaihtamisen Salli kirjoittaminen kansioon, jonka määrittelin vsftp = /var/ftp/pub
käyttämään.
Nämä linkit voivat olla hyödyllisiä:
- https://fedoraproject.org/wiki/SELinux/ftpd
- http://prithak.blogspot.com/2013/07/installation-and-configuration-of.html
Jos et halua mennä pidemmälle SELinuxin kanssa, älä muuta sitä, joten näet oletuksena /etc/selinux/config
SELINUX=enforcing
Suorita sitten komennot juuri root-tiedostona tai sudo
:
sudo setsebool -P ftpd_anon_write 1 sudo setsebool -P ftpd_full_access 1
kuten edellä on jo kuvattu toisessa kommentissa.
vastaus
Kokeile tätä
chmod 757 -R /var/www/html
Vastaa
Tarkista vsftpd.conf
tälle asetukselle:
guest_enable=YES # set it to NO then restart the vsftpd service.
Jos se on asetettu arvoon YES
, se aiheuttaa myös 553 Could not create file
.
Lähettäjä : http://www.vsftpd.beasts.org/vsftpd_conf.html
guest_enable Jos tämä asetus on käytössä, kaikki ei-anonyymit kirjautumistunnukset luokitellaan ”guest” -kirjautumisiksi. Vieraskirjautuminen määritetään uudelleen guest_username -asetus.
Oletus: EI
vastaus
Seuraava parametri antaa ftpd-käyttöoikeuden kirjoittaa mihin tahansa:
setsebool -P ftpd_full_acess=true
Älä käytä ftpd_anon_write
, ellet halua nimettömien latausten sallimista.
A nswer
Minun tapauksessani ongelma oli tiedostojärjestelmässä.
Oli välilyönti, mutta tiedostojärjestelmässä loppui inodeja df -i
# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvdf1 3276800 3276800 0 100% /ftp-data01
vastaus
Toinen mahdollisuus: tarkista levykiintiöt käyttäjä / ryhmä
ext:
repquota -a
xfs:
xfs_quota -x -c "report" /mount_point
vastaus
Tiedostonimessä on todennäköisesti tukemattomia merkkejä
Vastaa
Minun tapauksessani ftp-käyttäjällä ei ollut oikeuksia hakemistossa, jossa se oli .
Olin juuri unohtanut cd-levyn kohdehakemistoon, johon minulla oli oikeat oikeudet.
vastaus
Minun tapauksessani (CentOS7 + vsftpd) hakemiston käyttöoikeuksien muuttaminen 775: ksi komennolla ” chmod 775 / home / u ser / ftpdir / ” ei auttanut.
Tarkistin selinux-tilan komennolla ” sestatus ”, se oli käytössä, luetteloin ftp: hen liittyvät vaihtoehdot: ” getsebool -a | grep ftp ”
ja otti käytöstä poistetun vaihtoehdon ftpd_full_access käyttöön komennolla ” setsebool ftpd_full_access kohdassa ”. Sitten se alkoi kirjoittaa tiedostoa.
Vastaa
Suorita Fedora23: lle komennot:
setsebool -P ftpd_anon_write 1 setsebool -P ftpd_full_access 1
Se toimi minulle.