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 pourquoiftp put local_file
fonctionne sans destination explicite. (Indice: vérifiez la lignelocal: … 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:
- https://fedoraproject.org/wiki/SELinux/ftpd
- http://prithak.blogspot.com/2013/07/installation-and-configuration-of.html
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.