VSFTPD, 553 Nelze vytvořit soubor. – oprávnění?

Nastavil jsem vsftpd na Amazon EC2 s Amazon Linux AMI. Vytvořil jsem uživatele a mohu nyní se úspěšně připojte přes ftp. Pokud se však pokusím něco nahrát, zobrazí se chybová zpráva

553 Could not create file. 

Předpokládám, že to má co do činění s oprávněními, ale ne „Nevím toho dost, abych to mohl opravit. Co tedy v zásadě musím udělat, abych mohl nahrávat soubory?

Komentáře

  • Zkontrolujte nastavení selinuxu. nakonfigurovat boolean allow_ftpd_full_access na ZAPNUTO
  • měl jsem tento problém, protože nebylo dost místa pro zápis souborů.

odpověď

Existují dva pravděpodobné důvody, proč k tomu může dojít – nemáte oprávnění k zápisu a spouštění adresářů vedoucích do adresáře, do kterého se pokoušíte nahrát, nebo vsftpd je nakonfigurován tak, aby vám neumožňoval nahrávání.

V prvním případě použijte chmod a chown podle potřeby, abyste se ujistili, že váš uživatel má tato oprávnění ve všech prostředních adresářích. Bit pro zápis umožňuje postiženému uživateli vytvářet, přejmenovávat nebo mazat soubory v adresáři a upravovat atributy adresáře, zatímco bit pro čtení umožňuje postiženému uživateli vypsat soubory v adresáři. Protože mezilehlé adresáře v cestě také ovlivnit to, musí být příslušně nastavena oprávnění vedoucí až ke konečnému cíli, do kterého chcete nahrávat.

V druhém případě se podívejte na vsftpd.conf. write_enable musí být pravdivý, aby umožňoval zápis (a ve výchozím nastavení je falešný). K tomuto konfiguračnímu souboru je dobrá dokumentace na man 5 vsftpd.conf.

Komentáře

  • Zdá se, že ani jeden z nich není problém. Snažil jsem se vše změnit na 777 (nebezpečné) a nastavení write_enable = YES, ale stále dostávám tato zbytečná chybová zpráva.
  • @Cerin jste to dokázali opravit? Pokud ano, můžete sdílet podrobnosti?

Odpovědět

Můžete to zkusit

chown -R ftpusername /var/www/html 

Komentáře

  • chmod 757 -R / var / www / html
  • @Hern á nEche děkuji za tip, lovil jsem celé hodiny a to konečně vyřešilo můj problém.
  • Mohl byste podrobněji popsat situaci, je to na serveru nebo lokálně?
  • @Hern á nEche Hej, fungovalo to i pro mě, ale je to bezpečné. Nebylo to ‚ s 755
  • @Hern á nEche pracovat, měli byste na to udělat samostatnou odpověď. Váš návrh pracoval pro mě tam, kde nic jiného.

Odpovědět

Příkaz ftp put /path/to/local_file nefunguje s vsftpd. Zkuste následující:

ftp put /path/to/local_file remote_file_name 

Můžete si vybrat libovolné jméno, které si přejete pro remote_file_name, ale musíte ho určit.

Komentáře

  • Možná budete chtít zvážit přidání podrobností k vaší odpovědi (například nějaká dokumentace, která podporuje vaše řešení ‚ s platnost).
  • K tomu dochází, protože (a pokud) /path/to/ neexistuje ‚ t (a / nebo není ‚ t přístupný prostřednictvím relace FTP) na proto server ftp put local_file funguje bez explicitního cíle. (Tip: zkontrolujte řádek local: … remote: … v FTP klient.)
  • Pro mě to fungovalo! 🙂

Odpověď

Domovský adresář FTP (ftp_home_dir) je v SeLinuxu s největší pravděpodobností vypnutý. Chcete-li zobrazit stav svých ftpd řídicích souborů, vydejte: getsebool -a a vyhledejte sekci ftpd. Můžete si všimnout, že ftp_home_dir je vypnutý. Chcete-li jej zapnout, použijte následující příkaz: setsebool -P ftp_home_dir=1

Ověřte svůj vstup pomocí getsebool -a a poté zkuste nahrát znovu.

Poznámka: Ignorujte interpunkční znaménka

Odpověď

Měl jsem stejný problém a opravil jsem změnu SELinux na povolit zápis do složky, kterou jsem nakonfiguroval pro použití vsftp = /var/ftp/pub.

Tyto odkazy mohou být užitečné:

Pokud se svým SELinuxem nechcete jít dále, neměňte jej, takže se zobrazí jako výchozí /etc/selinux/config

SELINUX=enforcing 

stačí spustit příkazy jako root nebo pomocí sudo:

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

jak již bylo popsáno výše v jiném komentáři.

Odpověď

Zkuste to

chmod 757 -R /var/www/html 

Odpovědět

Zkontrolujte své nastavení u vsftpd.conf:

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

Pokud je nastaven na YES, způsobí to také 553 Could not create file.

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

guest_enable Pokud je povoleno, všechna neanonymní přihlášení jsou klasifikována jako přihlášení „guest“. Přihlášení hosta je přemapováno na uživatele uvedeného v nastavení uživatelského jména hosta.

Výchozí: NE

Odpověď

Následující parametr poskytne ftpd přístup k zápisu kdekoli:

setsebool -P ftpd_full_acess=true 

Nepoužívejte ftpd_anon_write, pokud nechcete povolit anonymní nahrávání.

A nswer

V mém případě byl problém se souborovým systémem.

Došlo k mezeru, ale souborovému systému došlo inody df -i

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

Odpověď

Další možnost: zkontrolujte kvóty disku pro uživatel / skupina

ext:

repquota -a 

xfs:

xfs_quota -x -c "report" /mount_point 

Odpověď

Pravděpodobně budete mít v názvu souboru nepodporované znaky

Odpovědět

V mém případě uživatel ftp neměl oprávnění v adresáři, ve kterém byl .

Právě jsem zapomněl cd do cílového adresáře, ke kterému jsem měl správná oprávnění.

Odpověď

V mém případě (CentOS7 + vsftpd) změna oprávnění adresáře na 775 příkazem “ chmod 775 / home / u ser / ftpdir / “ nepomohlo.

Zkontroloval jsem stav selinuxu příkazem “ sestatus „, bylo povoleno, uvádím možnosti související s ftp: “ getsebool -a | grep ftp “

a povolil deaktivovanou možnost ftpd_full_access příkazem “ setsebool ftpd_full_access na „. Pak to začalo psát soubor.

Odpověď

U Fedory23 spusťte příkazy:

setsebool -P ftpd_anon_write 1 setsebool -P ftpd_full_access 1 

Fungovalo to pro mě.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *