VSFTPD, 553 Impossibile creare il file. – autorizzazioni?

Ho configurato vsftpd su Amazon EC2 con lAMI Amazon Linux. Ho creato un utente e posso ora mi connetto con successo tramite ftp. Tuttavia, se provo a caricare qualcosa ricevo il messaggio di errore

553 Could not create file. 

Presumo che questo abbia a che fare con i permessi, ma non “Non ne so abbastanza per essere in grado di risolverlo. Quindi, fondamentalmente, cosa devo fare per poter caricare i file?

Commenti

  • Controlla le impostazioni di selinux. configure boolean allow_ftpd_full_access su ON
  • ho avuto questo problema perché non cera abbastanza spazio per scrivere i file.

Risposta

Ci sono due probabili ragioni per cui ciò potrebbe accadere: non hai i permessi di scrittura ed esecuzione sulle directory che conducono alla directory in cui stai tentando di caricare, o vsftpd è configurato per non consentire il caricamento.

Nel primo caso, utilizza chmod e chown come appropriato per assicurarti che il tuo utente abbia questi permessi su ogni directory intermedia. Il bit di scrittura consente allutente interessato di creare, rinominare o eliminare file allinterno della directory e modificare gli attributi della directory, mentre il bit di lettura consente allutente interessato di elencare i file allinterno della directory. Poiché anche le directory intermedie nel percorso influiscono su questo, i permessi devono essere impostati in modo appropriato fino alla destinazione finale in cui intendi caricare.

In questultimo caso, guarda il tuo vsftpd.conf. write_enable deve essere vero per consentire la scrittura (ed è falso per impostazione predefinita). Cè una buona documentazione su questo file di configurazione in man 5 vsftpd.conf.

Commenti

  • Nessuno di questi sembra essere il problema. Ho provato a modificare tutto in 777 (non sicuro) e le impostazioni write_enable = YES, ma ottengo ancora questo messaggio di errore inutile.
  • @Cerin sei riuscito a risolverlo? Se sì, puoi condividere i dettagli?

Risposta

Potresti provare con questo

chown -R ftpusername /var/www/html 

Commenti

  • chmod 757 -R / var / www / html
  • @Hern á nEche grazie per il suggerimento, cercavo da ore e questo ha finalmente risolto il mio problema.
  • Potresti approfondire la situazione, è sul server o localmente?
  • @Hern á nEche Ehi, ha funzionato anche per me, ma è sicuro. ‘ t funzionava con 755
  • @Hern á nEche dovresti rendere questa risposta separata. Il tuo suggerimento ha funzionato per me dove nientaltro ha funzionato.

Rispondi

Il comando ftp put /path/to/local_file non funziona con vsftpd. Prova quanto segue:

ftp put /path/to/local_file remote_file_name 

Puoi scegliere qualsiasi nome che desideri per remote_file_name, ma devi specificarne uno.

Commenti

  • Potresti volere per considerare laggiunta di maggiori dettagli alla tua risposta (ad esempio, una documentazione che supporti la validità della tua soluzione ‘).
  • Ciò accade perché (e se) /path/to/ non ‘ esiste (e / o ‘ non è accessibile tramite la sessione FTP) su il server. Questo è il motivo per cui ftp put local_file funziona senza una destinazione esplicita. (Suggerimento: controlla la riga local: … remote: … il client FTP.)
  • Ha funzionato per me! 🙂

Risposta

La home directory FTP (ftp_home_dir) è molto probabilmente disattivata in SeLinux. Per vedere lo stato dei tuoi file di controllo ftpd, scrivi: getsebool -a e individua la sezione ftpd. Potresti notare che ftp_home_dir è disattivato. Per attivarlo, utilizza il seguente comando: setsebool -P ftp_home_dir=1

Verifica il tuo input utilizzando getsebool -a, quindi prova il caricamento ancora.

Nota: ignora i segni di punteggiatura

Risposta

Ho avuto lo stesso problema e ho risolto il problema cambiando SELinux in consenti la scrittura nella cartella che ho configurato per essere utilizzata da vsftp = /var/ftp/pub.

Questi link possono essere utili:

Se non vuoi andare oltre con SELinux non cambiarlo, quindi vedrai come predefinito /etc/selinux/config

SELINUX=enforcing 

quindi esegui i comandi come root o con sudo:

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

come già descritto sopra in un altro commento.

Risposta

Prova questo

chmod 757 -R /var/www/html 

Risposta

Controlla il tuo vsftpd.conf per questa impostazione:

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

Se è impostato su YES, causerà anche il 553 Could not create file.

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

guest_enable Se abilitato, tutti gli accessi non anonimi sono classificati come accessi “guest”. Un accesso guest viene rimappato allutente specificato nel impostazione guest_username.

Predefinito: NO

Risposta

Il prossimo parametro darà accesso ftpd per scrivere ovunque:

setsebool -P ftpd_full_acess=true 

Non utilizzare ftpd_anon_write a meno che non si desideri consentire caricamenti anonimi.

A nswer

Nel mio caso il problema era con il filesystem.

Cera uno spazio ma il filesystem aveva esaurito gli inode df -i

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

Risposta

Unaltra possibilità: controllare le quote del disco per utente / gruppo

ext:

repquota -a 

xfs:

xfs_quota -x -c "report" /mount_point 

Risposta

È probabile che nel nome file siano presenti caratteri non supportati

Risposta

Nel mio caso, lutente ftp non aveva i permessi nella directory in cui si trovava .

Mi ero appena dimenticato di inserire cd nella directory di destinazione, per cui ho i permessi corretti.

Risposta

Nel mio caso (CentOS7 + vsftpd) cambiando le autorizzazioni della directory a 775 tramite il comando ” chmod 775 / home / u ser / ftpdir / ” non ha aiutato.

Ho controllato lo stato di selinux con il comando ” sestatus “, era abilitato, elenco le opzioni relative a ftp: ” getsebool -a | grep ftp ”

e abilitato lopzione disabilitata ftpd_full_access tramite il comando ” setsebool ftpd_full_access su “. Quindi ha iniziato a scrivere il file.

Risposta

Per Fedora23 eseguire i comandi:

setsebool -P ftpd_anon_write 1 setsebool -P ftpd_full_access 1 

Ha funzionato per me.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *