Tente com este manual. Talvez funcione para você.
Como fazer isso
Instale vsftpd e uma biblioteca PAM
Editar /etc/vsftpd.conf
e/etc/pam.d/vsftpd
Crie contas de usuário com diretórios personalizados (em / var / www / por exemplo)
Definir diretórios com a correta chmod
echown
Crie um usuário administrador com acesso total ao servidor
- Instale
vsftpd
(Very Secure FTP Deamon) e libpam-pwdfile
crie usuários virtuais
Eu queria criar usuários de FTP, mas não queria adicionar usuários unix locais (sem acesso ao shell, sem diretório inicial e assim por diante). Um PAM (Módulos de autenticação conectáveis) ajudará você a criar usuários virtuais.
sudo apt-get install vsftpd libpam-pwdfile
- Editar
vsftpd.conf
Primeiro você precisa fazer o backup do arquivo original
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
Em seguida, crie um novo
sudo vim /etc/vsftpd.conf
Copie e cole as seguintes linhas. O arquivo deve conter SOMENTE estas linhas:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
- Registrar usuários virtuais
Para registrar um usuário que você usa htpasswd
, presumo que você esteja apache2
trabalhando no seu servidor. Crie uma vsftpd
pasta e coloque os arquivos de configuração nela.
sudo mkdir /etc/vsftpd
então
sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1
-c significa que criaremos o arquivo se ele ainda não existir -d força o MD5, você precisa dele no ubuntu 12.04, use-o sempre
O comando solicitará uma senha.
Se você deseja adicionar novos usuários posteriormente:
sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2
- Configurar o PAM no
/etc/pam.d/vsftpd
Novamente, você precisa fazer backup do arquivo original
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
e crie um novo
sudo vim /etc/pam.d/vsftpd
Copie e cole essas 2 linhas (esse deve ser o único conteúdo). Insisto apenas nessas duas linhas, perdi muito tempo mantendo os originais e apenas os adicionei.
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
- Crie um usuário local sem acesso ao shell
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
Você pode verificar se ele foi criado com o comando id: id vsftpd. Definimos o usuário com o shell / bin / false por causa do parâmetro check_shell (mesmo que você não o use). Quando o usuário final se conectar ao servidor FTP, eles serão usados para direitos e propriedade:
chmod
e chown
.
- Reiniciar
vsftpd
A maneira comum é usar o init.d como todos os deamon
sudo /etc/init.d/vsftpd restart
sudo service vsftpd restart
- Criar diretórios
De acordo com a configuração, todos os usuários serão colocados nesta pasta: / var / www / user1.
Você precisa criá-los com direitos específicos: a pasta raiz não pode ser gravável!
/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755
Nota: o usuário não pode criar arquivos ou pastas no diretório raiz.
No vsftpd.conf
que temos chroot_local_user=YES
, o usuário não pode ver nada fora de sua pasta. Para ele, o servidor fica assim:
Então, basta executar estes comandos:
mkdir /var/www/user1`
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1
A /var/www/user1
pasta TEM QUE EXISTIR ou a conexão falhará.
Agora você pode tentar se conectar ao seu FTP
- Crie um usuário Admin para acessar todo o servidor
Para criar um usuário administrador, precisamos registrar um novo usuário htpasswd
.
Antes de fazer isso, aconselhamos que você verifique o /etc/ftpusers
arquivo que define certos usuários que não têm permissão para se conectar ao ftp. Eu acho que é apenas para usuários locais e não para usuários virtuais, mas por precaução, não escolha um nome contido neste arquivo.
sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin
Agora precisamos adicionar uma nova linha no /etc/vsftpd.conf
chroot_list_enable=YES
Isso significa que seu usuário será colocado em sua pasta (como uma prisão), EXCETO usuários no diretório / etc /
vsftpd.chroot_list
Vamos criar este arquivo e adicionar nosso usuário, o arquivo é uma linha simples que contém "theadmin". Adicione um usuário por linha. Isso significa que você NÃO precisa criar uma /var/www/theadmin
pasta, o usuário fará o login e iniciará /home/vsftpd
.
Reinicie o servidor e pronto!