J'ai configuré VSFTPD sur Amazon EC2 avec Amazon Linux AMI. J'ai créé un utilisateur et je peux maintenant me connecter avec succès via ftp. Cependant, si j'essaie de télécharger quelque chose, j'obtiens le message d'erreur "553 Impossible de créer le fichier."
Je suppose que cela a à voir avec les autorisations, mais je n'en connais pas assez pour pouvoir y remédier. Donc, fondamentalement, que dois-je faire pour pouvoir télécharger des fichiers?
permissions
ftp
vsftpd
amazon-ec2
Jeff Schaller
la source
la source
Réponses:
Il y a deux raisons probables à cela: vous n'avez pas d'autorisations d'écriture et d'exécution sur les répertoires menant au répertoire vers lequel vous essayez de télécharger, ou
vsftpd
est configuré pour ne pas vous permettre de télécharger.Dans le premier cas, utilisez
chmod
etchown
selon le cas pour vous assurer que votre utilisateur dispose de ces autorisations sur chaque répertoire intermédiaire. Le bit d'écriture permet à l'utilisateur affecté 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 à l'utilisateur affecté de répertorier les fichiers dans le répertoire. Étant donné que les répertoires intermédiaires du chemin affectent également cela, les autorisations doivent être définies de manière appropriée jusqu'à la destination finale vers laquelle vous souhaitez télécharger.Dans ce dernier cas, regardez votre
vsftpd.conf
.write_enable
doit être vrai pour autoriser l'écriture (et il est faux par défaut). Il existe une bonne documentation sur ce fichier de configuration àman 5 vsftpd.conf
.la source
Pourriez-vous essayer ceci
la source
La commande
ftp put /path/to/local_file
ne fonctionne pas avecvsftpd
. Essayez ce qui suit:Vous pouvez choisir le nom de votre choix
remote_file_name
, mais vous devez en spécifier un.la source
/path/to/
n'existe pas (et / ou n'est pas accessible via la session FTP) sur le serveur. C'est pourquoiftp put local_file
ne travail sans destination explicite. (Astuce: vérifiez lalocal: … remote: …
ligne dans le client FTP.)Le répertoire de base FTP (ftp_home_dir) est très probablement désactivé dans SeLinux. Pour voir l'état de vos
ftpd
fichiers de contrôle, lancez:getsebool -a
et recherchez la section ftpd. Vous remarquerez peut-être que ftp_home_dir est désactivé. Pour l'activer, utilisez la commande suivante:setsebool -P ftp_home_dir=1
Vérifiez votre saisie à l'aide de
getsebool -a
, puis réessayez le téléchargement.Remarque: ignorez les signes de ponctuation
la source
J'ai eu le même problème et corrigé la modification de SELinux pour permettre l'écriture dans le dossier que j'ai 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 changez pas, vous verrez donc par défaut
/etc/selinux/config
puis exécutez simplement les commandes en tant que root ou avec
sudo
:comme déjà décrit ci-dessus dans d'autres commentaires.
la source
Vérifiez votre
vsftpd.conf
pour ce paramètre:S'il est défini sur
YES
, il provoquera également le553 Could not create file
.De: http://www.vsftpd.beasts.org/vsftpd_conf.html
la source
Essaye ça
la source
Autre possibilité: vérifier les quotas de disque pour l'utilisateur / groupe
ext:
xfs:
la source
Le paramètre suivant donnera à ftpd un accès pour écrire n'importe où:
Ne l'utilisez
ftpd_anon_write
que si vous souhaitez autoriser les téléchargements anonymes.la source
Vous avez probablement des caractères non pris en charge dans le nom de fichier
la source
Pour Fedora23, exécutez les commandes:
Ça a marché pour moi.
la source