web-dev-qa-db-fra.com

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

J'ai configuré VSFTPD sur Amazon EC2 avec l'AMI Amazon Linux. 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 suffisamment pour pouvoir y remédier. Donc, fondamentalement, que dois-je faire pour pouvoir télécharger des fichiers?

33
user1995

Cela peut se produire pour deux raisons: vous ne disposez pas des autorisations d'écriture et d'exé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 permettre de télécharger.

Dans le premier cas, utilisez chmod et chown 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 dans le chemin affectent également cela, les autorisations doivent être définies de manière appropriée jusqu'à la destination finale vers laquelle vous avez l'intention 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.

19
Chris Down

Pourriez-vous essayer ceci

chown -R ftpusername /var/www/html
38

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 le nom de votre choix pour le remote_file_name, mais vous devez en spécifier un.

12
Victor

Le répertoire de base FTP (ftp_home_dir) est très probablement désactivé dans SeLinux. Pour afficher l'état de vos fichiers de contrôle ftpd, entrez: 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

3
Bright Sunshine

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

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 d'autres commentaires.

2
Eduardo Cerqueira

Essaye ça

chmod 757 -R /var/www/html
2
Hernán Eche

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

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

S'il est défini sur YES, il 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 en tant que connexions "invité". Une connexion d'invité est remappée à l'utilisateur spécifié dans le paramètre guest_username.

Par défaut: NON

1
Henry Parra

Vous avez probablement des caractères non pris en charge dans le nom de fichier

0
Omkar Dusane

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

setsebool -P ftpd_full_acess=true 

Ne pas utiliser ftpd_anon_write sauf si vous souhaitez autoriser les transferts anonymes.

0
Neil

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

ext:

repquota -a

xfs:

xfs_quota -x -c 'report' /mount_point
0
mveroone

Dans mon cas, l'utilisateur ftp n'avait aucune autorisation dans le répertoire où il se trouvait.

J'avais juste oublié de cd dans le répertoire cible, pour lequel j'ai ai les bonnes autorisations.

0
kintsukuroi