Definir um limite de tamanho para o diretório compartilhado do SAMBA remotamente

2

Fui solicitado a configurar um diretório compartilhado para um colega em um servidor que eu gerencio. Eu criei uma conta para ele nesse servidor, configurei uma senha do Samba com smbpasswd , criei um diretório e o configurei no arquivo smb.conf, que copio abaixo:

[global]
workgroup = OURWORKGROUP
server string = Samba Server %v
netbios name = server_i_run
security = user
map to guest = bad user
name resolve order = bcast lmhosts host wins 
dns proxy = no
[coworkerguy]
path = /samba/coworkerguy
valid users = coworkerguy
guest ok = no
writable = yes
browsable = yes

Agora me pediram para limitar esse espaço a 2Gb. Procurei ideias on-line, mas não consigo encontrar nada recente e a criação de cotas de disco é, aparentemente, uma das soluções mais populares. Eu admito que não estou tão confiante em fazer isso e, além disso, muitas vezes acontece que eu tenho que reiniciar no modo de usuário único - a menos que eu entenda mal alguma coisa. Isso não é possível, pois só posso ssh remotamente para esse servidor. Existem técnicas que eu poderia usar? Se não, alguém poderia me indicar um guia à prova de idiotas?

    
por Btz 04.02.2015 / 17:10

3 respostas

6

Minha solução não é a melhor, eu sei, mas funciona ;-). EDIT: Por favor, leia minha outra resposta também, esta resposta é um truque mal!

Crie um arquivo de 2Gb com o dd, formate o arquivo, por exemplo ext3, monte-o, adicione-o ao fstab e use-o como um compartilhamento.

$ dd if=/dev/zero of=filename bs=1024 count=2M
$ sudo mkfs.ext4 filename
$ cat /etc/fstab
/path/to/filename /mount/point ext4 defaults,users

Agora você aponta o compartilhamento para /mount/point (ou onde quer que você tenha escolhido para montá-lo), então

path = /samba/coworkerguy torna-se path = /mount/point

No UNIX, tudo é um arquivo.

    
por 04.02.2015 / 17:57
2

Existe outra opção mais limpa. Ele requer um kernel com cotas de disco ativadas, mas nenhum modo de usuário único.

Basicamente, edite seu /etc/fstab e adicione usrquota às opções de montagem da partição. Então você remonta a partição:

$ sudo mount -o remount /dev/sd<x><y>

Em que <x> é uma letra do disco e <y> do número da partição no disco (se você usar uuid , consulte man mount para montar com uuid ).

Em seguida, você emite o seguinte para criar um arquivo de cota:

$ sudo quotacheck -avug

Depois de ter o arquivo de cota, é hora de adicionar uma cota para coworkerguy :

$ sudo edquota coworkerguy

Observe que, por padrão, o editor é vi , defina a variável EDITOR como nano ou gedit ou o editor que você deseja e execute novamente o comando acima.

$ export EDITOR=gedit

Agora você pode adicionar quotacheck a cron

$ sudo echo 'quotacheck -avug' >/etc/cron.daily/quotacheck

Consulte o link para ver as etapas e a saída exatas.

Além disso, consulte o link

    
por 05.02.2015 / 17:06
1

Eu usaria um dispositivo de bloco montado nesse diretório. LVM é útil aqui. Faça um volume lógico que seja 2G e monte-o em /samba/coworkerguy . Isso evitará qualquer necessidade de cotas e atenderá aos requisitos exatos ao restringir o tamanho.

    
por 04.02.2015 / 17:34