VSFTPD, 553 Impossible de créer le fichier. – autorisations?

Jai configuré vsftpd sur Amazon EC2 avec lAMI Amazon Linux. Jai créé un utilisateur et je peux Maintenant, connectez-vous via ftp. Cependant, si jessaie de télécharger quelque chose, jobtiens le message derreur

553 Could not create file. 

Je suppose que cela a à voir avec les autorisations, mais je ne « Je ne sais pas assez à ce sujet pour pouvoir le réparer. Alors en gros, que dois-je faire pour pouvoir télécharger des fichiers?

Commentaires

  • Vérifiez les paramètres de selinux. configurez le booléen allow_ftpd_full_access sur ON
  • Jai eu ce problème car il ny avait pas assez despace pour écrire les fichiers.

Réponse

Il y a deux raisons probables à cela: vous ne disposez pas des autorisations décriture et dexécution sur les répertoires menant au répertoire dans lequel vous essayez de télécharger, ou vsftpd est configuré pour ne pas vous autoriser à téléverser.

Dans le premier cas, utilisez chmod et chown le cas échéant pour vous assurer que votre utilisateur dispose de ces autorisations sur chaque répertoire intermédiaire. Le bit décriture permet à lutilisateur concerné de créer, renommer ou supprimer des fichiers dans le répertoire et de modifier les attributs du répertoire, tandis que le bit de lecture permet à lutilisateur concerné de lister les fichiers dans le répertoire. Puisque les répertoires intermédiaires dans le chemin sont également affectez cela, les permissions doivent être définies de manière appropriée jusquà la destination finale vers laquelle vous avez lintention de télécharger.

Dans ce dernier cas, regardez votre vsftpd.conf. write_enable doit être vrai pour permettre lécriture (et il est faux par défaut). Il existe une bonne documentation sur ce fichier de configuration à man 5 vsftpd.conf.

Commentaires

  • Aucun de ces problèmes ne semble être le problème. Jai essayé de tout modifier en 777 (unsafe) et les paramètres write_enable = YES, mais jobtiens toujours ce message derreur inutile.
  • @Cerin avez-vous pu le corriger? Si oui, pouvez-vous partager les détails?

Réponse

Pourriez-vous essayer ceci

chown -R ftpusername /var/www/html 

Commentaires

  • chmod 757 -R / var / www / html
  • @Hern á Merci pour le conseil, javais chassé pendant des heures et cela a finalement résolu mon problème.
  • Pourriez-vous élaborer sur la situation, est-ce sur le serveur ou localement?
  • @Hern á nEche Hé, cela a fonctionné pour moi aussi, mais est-ce sécurisé. Il n \ était ‘ t travailler avec 755
  • @Hern á nEt vous devriez en faire une réponse séparée. Votre suggestion a fonctionné pour moi là où rien dautre na fonctionné.

Réponse

La commande ftp put /path/to/local_file ne fonctionne pas avec vsftpd. Essayez ce qui suit:

ftp put /path/to/local_file remote_file_name 

Vous pouvez choisir nimporte quel nom que vous souhaitez pour le remote_file_name, mais vous devez en spécifier un.

Commentaires

  • Vous voudrez peut-être pour envisager dajouter plus de détails à votre réponse (par exemple, une documentation qui prend en charge la validité de votre solution ‘).
  • Cela se produit parce que (et si) /path/to/ nexiste pas ‘ (et / ou nest ‘ pas accessible via la session FTP) sur le serveur. Cest pourquoi ftp put local_file fonctionne sans destination explicite. (Indice: vérifiez la ligne local: … remote: … dans le client FTP.)
  • Cela a fonctionné pour moi! 🙂

Réponse

Le répertoire de base FTP (ftp_home_dir) est probablement désactivé dans SeLinux. Pour voir létat de vos fichiers de contrôle ftpd, exécutez: getsebool -a et localisez la section ftpd. Vous remarquerez peut-être que ftp_home_dir est désactivé. Pour lactiver, utilisez la commande suivante: setsebool -P ftp_home_dir=1

Vérifiez votre saisie en utilisant getsebool -a, puis essayez le téléchargement de nouveau.

Remarque: ignorez les signes de ponctuation

Réponse

Jai eu le même problème et jai corrigé le changement de SELinux en autorise lécriture dans le dossier que jai configuré pour être utilisé par vsftp = /var/ftp/pub.

Ces liens peuvent être utiles:

Si vous ne voulez pas aller plus loin avec votre SELinux ne le modifiez pas, vous verrez donc par défaut /etc/selinux/config

SELINUX=enforcing 

puis exécutez simplement les commandes en tant que root ou avec sudo:

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

comme déjà décrit ci-dessus dans un autre commentaire.

Réponse

Essayez ceci

chmod 757 -R /var/www/html 

Réponse

Vérifiez votre vsftpd.conf pour ce paramètre:

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

Sil « est défini sur YES, cela provoquera également le 553 Could not create file.

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

guest_enable Si cette option est activée, toutes les connexions non anonymes sont classées comme connexions « invité ». Une connexion invité est remappée à lutilisateur spécifié dans le paramètre guest_username.

Par défaut: NO

Réponse

Le paramètre suivant donnera un accès ftpd pour écrire nimporte où:

setsebool -P ftpd_full_acess=true 

Nutilisez pas ftpd_anon_write sauf si vous souhaitez que les importations anonymes soient autorisées.

A nswer

Dans mon cas, le problème était avec le système de fichiers.

Il y avait un espace mais le système de fichiers manquait dinodes df -i

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

Réponse

Autre possibilité: vérifier les quotas de disque pour le utilisateur / groupe

ext:

repquota -a 

xfs:

xfs_quota -x -c "report" /mount_point 

Réponse

Il est probable que vous ayez des caractères non pris en charge dans le nom du fichier

Réponse

Dans mon cas, lutilisateur ftp navait aucune autorisation dans le répertoire dans lequel il se trouvait .

Javais juste oublié de mettre un cd dans le répertoire cible, pour lequel je avait les bonnes permissions.

Réponse

Dans mon cas (CentOS7 + vsftpd) changement des autorisations de répertoire à 775 par la commande  » chmod 775 / home / u ser / ftpdir /  » pas aidé.

Jai vérifié le statut de selinux par la commande  » sestatus « , il a été activé, je liste les options liées au ftp:  » getsebool -a | grep ftp  »

et activé loption désactivée ftpd_full_access par la commande  » setsebool ftpd_full_access sur « . Ensuite, il a commencé à écrire le fichier.

Réponse

Pour Fedora23, exécutez les commandes:

setsebool -P ftpd_anon_write 1 setsebool -P ftpd_full_access 1 

Cela a fonctionné pour moi.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *