Informações básicas:
Estou usando o Serverpilot para gerenciar meu servidor Ubuntu que não fornece nenhum serviço de FTP.
serverpilot
/srv/users/serverpilot/
/srv/users/serverpilot/apps/website/public/
. O que eu quero:
Agora eu gostaria de ter uma conta de FTP que só pode ler e gravar neste diretório: /srv/users/serverpilot/apps/website/public/ftpdir/
.
O que eu tentei:
sudo apt-get install vsftpd
sudo useradd -m -d /srv/users/serverpilot/apps/website/public/ftpdir ftpuser
(provavelmente não é uma boa ideia ter um diretório inicial de um usuário em outro diretório inicial de usuários) sudo passwd ftpuser
sudo vi /etc/vsftpd.conf
local_enable=YES
, então o ftpuser
pode ser usado como login de ftp write_enable=YES
o usuário é capaz de escrever chroot_local_user=YES
não pode acessar nada fora de seu diretório inicial pam_service_name=ftp
porque eu estava recebendo um 530 Erro incorreto de login
sudo ufw allow 21/tcp
Os problemas:
ftpuser
também podem ser usados como login de FTP. Eu só quero ter um usuário ftp e não permitir que outros usuários do sistema usem o FTP. ftpuser
também pode ser SSH no servidor. 553 error: could not create file
ao tentar enviar um arquivo. Para corrigir isso, me deparei com essa pergunta: link mas não acho que esse seja o caminho certo porque o arquivo deve ser de propriedade do usuário serverpilot
, não do usuário ftpuser
. O site que está sendo executado sob o usuário serverpilot
deve processar os arquivos enviados. Como já resolvi isso antes:
No passado, em outro servidor, mudei a propriedade do diretório e, depois de adicionar essas opções extras de configuração do vsftpd, ele estava finalmente funcionando:
file_open_mode=0775
local_umask=022
allow_writeable_chroot=YES
pam_service_name=vsftpd
Mas nesse servidor eu tive problemas com o processamento dos arquivos enviados por causa da propriedade, então eu estou usando a função file_get_contents()
PHP para obter os arquivos pela web ao invés de acessá-los diretamente no servidor que não é ' t que bom.
A pergunta final:
Como eu posso simplesmente ter 1 login de ftp que pode ler e gravar em um diretório em um diretório home de usuários onde a propriedade permanece no usuário de onde o diretório home é?
Desculpe pela duplicação, eu também fiz esta pergunta no Ask Ubuntu sem qualquer resposta: link talvez mais sorte aqui
Tags permissions ftp vsftpd