Eu configurei o VSFTPD no Amazon EC2 com o Amazon Linux AMI. Eu criei um usuário e agora posso conectar com sucesso via ftp. No entanto, se eu tentar fazer o upload de algo, recebo a mensagem de erro "553 Não foi possível criar o arquivo".
Presumo que isso tenha a ver com permissões, mas não sei o suficiente para poder corrigi-lo. Então, basicamente, o que tenho que fazer para poder fazer upload de arquivos?
permissions
ftp
vsftpd
amazon-ec2
Jeff Schaller
fonte
fonte
Respostas:
Há duas razões prováveis para que isso possa acontecer - você não tem permissões de gravação e execução nos diretórios que levam ao diretório para o qual está tentando fazer o upload ou
vsftpd
está configurado para não permitir o upload.No primeiro caso, use
chmod
echown
conforme apropriado para garantir que seu usuário tenha essas permissões em todos os diretórios intermediários. O bit de gravação permite que o usuário afetado crie, renomeie ou exclua arquivos no diretório e modifique os atributos do diretório, enquanto o bit de leitura permite ao usuário afetado listar os arquivos no diretório. Como os diretórios intermediários no caminho também afetam isso, as permissões devem ser definidas adequadamente, levando ao destino final para o qual você pretende fazer o upload.Neste último caso, olhe para o seu
vsftpd.conf
.write_enable
deve ser verdadeiro para permitir a gravação (e é falso por padrão). Há uma boa documentação sobre esse arquivo de configuração emman 5 vsftpd.conf
.fonte
Você poderia tentar isso
fonte
O comando
ftp put /path/to/local_file
não funcionavsftpd
. Tente o seguinte:Você pode escolher qualquer nome que desejar
remote_file_name
, mas deve especificar um.fonte
/path/to/
não existe (e / ou não está acessível através da sessão FTP) no servidor. É por issoftp put local_file
que funciona sem destino explícito. (Dica: verifique alocal: … remote: …
linha no cliente de FTP.)O diretório inicial do FTP (ftp_home_dir) provavelmente está desativado no SeLinux. Para ver o status dos seus
ftpd
arquivos de controle, emita:getsebool -a
e localize a seção ftpd. Você pode notar que o ftp_home_dir está desativado. Para ativá-lo, use o seguinte comando:setsebool -P ftp_home_dir=1
Verifique sua entrada usando
getsebool -a
e tente o upload novamente.Nota: Ignore os sinais de pontuação
fonte
Eu tive o mesmo problema e corrigi a alteração do SELinux para permitir a gravação na pasta que eu configurei para ser usada
vsftp = /var/ftp/pub
.Esses links podem ser úteis:
Se você não quiser ir mais longe com o seu SELinux, não o altere, então você verá como padrão
/etc/selinux/config
basta executar os comandos como root ou com
sudo
:como já descrito acima em outro comentário.
fonte
Verifique o seu
vsftpd.conf
para esta configuração:Se estiver definido como
YES
, também causará o553 Could not create file
.De: http://www.vsftpd.beasts.org/vsftpd_conf.html
fonte
Tente isto
fonte
Outra possibilidade: verificar cotas de disco para o usuário / grupo
ext:
xfs:
fonte
O próximo parâmetro dará ao ftpd acesso para gravar em qualquer lugar:
Não use a
ftpd_anon_write
menos que você queira que uploads anônimos sejam permitidos.fonte
É provável que você tenha caracteres não suportados no nome do arquivo
fonte
Para o Fedora23, execute os comandos:
Funcionou para mim.
fonte