Cotas em vsftpd?

5

Eu tentei configurar as cotas de disco do usuário para o vsftpd.

Eu configurei cotas para usuários virtuais de ftp usando o pacote "quota" no Debian (você sabe, editando o / etc / fstab e todas essas coisas). Internet me disse que é a única solução com vsftpd.

O problema é: quando um arquivo é carregado no servidor ftp, seu próprio usuário é ftp: nogroup, então a cota não se aplica ao meu usuário, por exemplo bob: bob.

Eu também tentei chown ftp: bob a pasta de destino, e uso cota de grupo no grupo de bob, mas eu não trabalhei

Então fui direto ao FAQ e não o encontrei :) Você tem alguma solução para esse problema de cota?

Felicidades, Mehdi

    
por user12087 08.07.2009 / 17:16

3 respostas

7

Aqui estão os passos que você deve seguir para configurar:

VSFTPd

Crie o arquivo /etc/vsftd.conf

#nano /etc/vsftpd.conf

listen=YES
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
download_enable=yes
guest_enable=NO
write_enable=yes

#If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot()
chroot_local_user=no
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

Em seguida, crie sua lista de chroot para impedir que os usuários naveguem fora de seu diretório inicial

#nano /etc/vsftpd.chroot_list

someusernamehere

SSH

Agora, como esse usuário tem uma conta real no sistema (as cotas de disco não funcionam em usuários virtuais), atualize o SSH se ele estiver em execução. Adicione o seguinte na linha inferior e certifique-se de que o usuário acima não esteja listado (ou seja, liste apenas os usuários que você deseja acessar o servidor via SSH):

#nano /etc/ssh/sshd_config

AllowUsers username1 username2

Preparando pontos de montagem

O Will agora instalará e ativará cotas

Isso mostra como fazer isso por usuário e por grupo. A propósito, o suporte à cota é ativado quando os sistemas de arquivos são montados, portanto, você precisará reinicializar seu servidor quando concluir as etapas a seguir. Por favor, não faça isso em uma máquina remota, a menos que você saiba exatamente o que está fazendo.

Execute o seguinte como root ou use o sudo:

#nano /etc/fstab

Você precisa ter o seguinte no seu arquivo fstab (usrquota ou grpquota). Aqui estão alguns exemplos, dependendo de como você instalou o seu servidor Ubuntu:

/dev/hda1       /home       ext2    defaults,usrquota  1       1 

ou

# /home was on /dev/sda3 during installation
UUID=fce47086-925c-4164-80a4-4ba6b307123b /home           ext4    defaults,usrquota        0       2

ou

# /home was on /dev/sda3 during installation
UUID=fce47086-925c-4164-80a4-4ba6b307123b /home           ext4    defaults,usrquota,grpquota        0       2

Você pode remontar com a reinicialização ou usando o seguinte exemplo:

#mount -o remount,usrquota /home 

Verifique suas montagens:

#mount | grep quota

Carregue o módulo do kernel de cota:

#modprobe quota_v2 echo 'quota_v2' >> /etc/modules 

Configurando suas cotas

Instale o pacote de cotas.

#apt-get install quota quotatool

Crie os seguintes arquivos, se eles ainda não existirem. Esses arquivos armazenam seus limites de cota:

#touch /home/aquota.user 
#touch /home/aquota.group 
#chmod 600 /home/aquota.user /home/aquota.group 

ative o quatacheck sem reinicializar:

# quotacheck -vagum

Se o seu kernel oferecer suporte a cota com registro no diário, mas você não estiver usando, provavelmente receberá um erro. Use este comando nesse caso:

# quotacheck -fvagum

Definir limites para o usuário:

#quotatool -u someusername -bq 100M -l '200 Mb' /home 

O primeiro valor é um limite flexível, o segundo é um limite rígido. Note que se um usuário tentar carregar um arquivo de texto de 100Mb e ele já tiver ultrapassado o limite de luz por 20Mb, o arquivo de texto será truncado por 20Mb para mantê-lo abaixo do limite máximo de 200Mb.

Verificar cotas:

#repquota /home 

Se você quiser remover uma cota de um usuário, basta definir seus limites de disco rígido e flexível como '0'.

Eu sei que é muito, mas isso deve ser feito! Corri o processo desde o início antes de publicá-lo, só para ter certeza.

    
por 04.02.2010 / 21:46
2

Patrick fez um bom howto. Eu adicionaria 2 coisas.

1.) quotatool não é obrigatório 2.) Se você não tem uma partição física própria para você, você pode usar arquivos de loop. Eu fiz isso e funciona muito bem

mkdir / usr / loop_device

  • Crie um arquivo de 50MB f.e

dd if = / dev / zero de = / usr / loop_device / ld1 bs = 1024 contados = 50000

  • Crie um sistema de arquivos

mkfs.ext4 / usr / loop_device / ld1

  • Crie um diretório para o usuário do ftp

mkdir / home_ftp

  • monte o dispositivo Loop

  • adicione a seguinte entrada ao / etc / fstab

/ usr / loop_device / ld1 / home_ftp / ext4 rw, loop, usrquota, grpquota 0 0

eu escrevi aqui com screenshots:

link

Tchau Chris

    
por 22.06.2014 / 22:48
1

As cotas funcionam apenas com usuários do sistema. Então você precisa configurar o vsftp para usar os usuários do sistema, você não pode usar usuários virtuais.

Editar :

Aqui está uma configuração rápida e suja que funciona:

listen=YES
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
download_enable=yes
anon_mkdir_write_enable=yes
guest_enable=NO
anon_world_readable_only=no
anon_upload_enable=yes
write_enable=yes
chroot_local_user=no
anon_other_write_enable=yes

Em seguida, use "quotacheck" para configurar cotas. Não esqueça de adicionar a opção "userquota" ao seu fstab.

    
por 08.07.2009 / 18:29