Baixe o app para aproveitar ainda mais
Prévia do material em texto
Tutorial samba com controle de quota e permissões por Anderson Mendes Instalando o samba, quota e o acl. Execute qualquer comando sempre sendo o root apt-get install samba quota acl 1- Criando os diretórios de compartilhamento de preferencia no diretório /home/. criando a pasta família. mkdir /home/família o Criando as subpastas pai, mãe e filho. mkdir /home/família/pai mkdir /home/família/mae mkdir /home/família/filho o alterar a permissão da pasta família para somente leitura e execução. Chmod 555 /home/familia/ 2- Criando e configurando os usuários e grupos. Comando usando para criar usuário sem home e com shell falso. useradd --no-create-home -s /bin/false usuário o criando os usuários pai, mãe e filho. useradd --no-create-home -s /bin/false pai useradd --no-create-home -s /bin/false mae useradd --no-create-home -s /bin/false filho Adicionando os usuários criados ao samba. o Comando usando para adicionar usuário ao samba e criar sua senha de acesso para o samba. smbpasswd -a usuário adicionando usuários. smbpasswd -a pai smbpasswd -a mae smbpasswd -a filho Criando os grupos o Comando para criar grupo. addgroup grupo Criando o grupo familia. addgroup familia Adicionando usuários ao grupo adduser usuário grupo adduser pai familia adduser mae familia adduser filho familia Adicionando as pastas pai, mae e filho ao grupo familia. Parâmetro usado: chown [usuário_dono].[grupo_dono] [diretório] chown pai.familia /home/familia/pai/ chown mae.familia /home/familia/mae/ chown filho.familia /home/familia/filho/ 3- Configurando as permissões de acesso. Usando o acl (acess control list). O acl é muito parecido com o chmod em termos de permissões em pastas, utiliza o mesmo mecanismo. “r” = leitura; “w” = escrita “x” = execução “-“ = sem permissão Parâmetros do acl setfacl -[dxm] [u,g,o]:<usuário,grupo,outros>:<rwx-> [diretório ou arquivo] -d (default) atribui as configurações padrões do acl. -m (mask) atribui as configurações especificadas pelo comando. -x (exclude) exclui o registro da acl. -u (user) especifica um nome de usuário a receber as permissões. -g (group) especifica um grupo de usuário a receber as permissões. -o (other) especifica outros usuário a receberem as permissões. Executando o acl para os usuário pai, mae e filho setfacl -m u:pai:rwx /home/familia/pai # nesta pasta o pai terá total autoridade (rwx) setfacl -m u:mae:--- /home/familia/pai # nesta pasta a mae não terá autoridade (---) setfacl -m u:filho:--- /home/familia/pai #nesta pasta o filho também não terá autoridade (---) setfacl -m u:pai:rwx /home/familia/mae # nesta pasta o pai terá total autoridade (rwx) setfacl -m u:mae:rwx /home/familia/mae # nesta pasta a mae terá total autoridade (rwx) setfacl –m u:filho:--- /home/familia/mae #nesta pasta o filho também não terá autoridade(---) setfacl -m u:pai:rwx /home/familia/filho # nesta pasta o pai terá total autoridade (rwx) setfacl -m u:mae:rwx /home/familia/filho # nesta pasta a mae terá total autoridade (rwx) setfacl -m u:filho:rwx /home/familia/filho #nesta pasta o filho terá total autoridade(rwx) Checando o comando acl getfacl – diretório ou arquivo Ex: getfacl /home/familia/pai A saída será esta: #file: home/familia/pai/ #owner: root #group: root user::rwx user::pai:rwx user::mae:--- user::filho:--- group::r-w mask::rwx other::r-w Como observado os usuários pai, mae e filho tem suas permissões por usuário e não importa o grupo a qual eles pertençam, eles terão que respeitar essa permissão individual, até mesmo o samba não poderá mudar essas permissões. Adicionando permissões especiais as pastas, esta permissão fara que somente quem criar poderá deletar o arquivo ou diretório, mas o proprietário da pasta raiz em que foi criado um arquivo ou diretório ainda terá autoridade para deletar arquivos de terceiros. o Usando sticky bit. O sticky bit é um recurso a fim de proteger o arquivo contra uma possível exclusão por terceiros. Sintaxe do parâmetro. chmod +t diretório Ex: chmod +t /home/familia/pai/ Obs: Neste caso iremos usar o mecanismo de herança do samba, iremos aplicar o sticky bit no diretório raiz de cada usuário sendo eles pai, mae e filho a fim de usar o mecanimos de propagação. O samba usa as funções inherit acl = yes e inherit permission = yes, para o processo de propagação da herança para que seja transferido o sticky bit para os arquivos que forem criados dentro dos diretórios que estiverem com o sticky bit ativo, sendo assim só irá deletar um arquivo que for dono do arquivo ou diretório. 4- Configurando o samba. É importante fazer uma cópia do arquivo smb.conf do samba. cp /etc/samba/smb.conf /etc/samba/smb.copia.conf Iniciando as configurações no samba. Abra o arquivo smb.conf em /etc/samba/smb.conf com o editor de sua preferência. Primeira inserção de dados após o escopo [global], inserir os seguintes parâmetros: map acl inherit = yes; # esse parâmetro ira liberar o mapeamento do acl (acess control list) com isso o servidor samba ira atribuir as permissões para cada usuário ou grupo em sua pasta compartilhada de acordo com a acl; inherit acl = yes; # significa que as pastas e subpastas irão herdar a acl. inherit permissions = yes; #significa que as pastas e subpastas irão herdar as permissões. Obs: Esses parâmetros são muito importantes para o funcionando do servidor a fim de propagar certas permissões como a permissão do sticky bit. Agora não mecha nas outras configurações do samba, vá para o final do arquivo. Criando o escopo de familia, pai, mae e filho. [familia] comment = Pasta familia # apenas comentário a respeito da pasta compartilhada path = /home/familia/ #diretório de compartilhamento valid users = pai mae filho #usuários validos para acessar o samba read only = yes #permissão de escrita no samba writeable = yes #permissão de leitura no samba force create mode = 1755 # força o sticky bit e as permissões force directory mode = 1755 #força o sticky bit e as permissões nos diretórios. create mode = 1755 # ativa o sticky bit e as permissões para criação de arquivos. directory mode = 1755 # ativa o sticky bit e as permissões nos diretórios. include = /etc/samba/%U.conf # incluindo outras configurações no escopo família de acordo com o usuário pois o %U. conf significa que o arquivo só será chamada ao escopo família pelo nome de usuário logado ex: /etc/samba/pai.conf sera chamado ao escopo quando o pai logar no servidor samba. Pronto agora só salvar as configurações. Criando os arquivos que serão incluídos no escopo família com configurações adicionais. touch /etc/samba/pai.conf touch /etc/samba/mae.conf touch /etc/samba/filho.conf o Nesses três arquivos iremos criar as permissões por extensão de arquivo. Abra o arquivo pai em /etc/samba/pai.conf e insira o seguinte parâmetro. veto files = /*.exe/*.php/*.sh/ # com esse parâmetro iremos restringir as extensões citas, mas apenas no usuário pai, pois o include no escopo família só será chamada por usuário. Pronto só salvar o arquivo. Abra o arquivo mae /etc/samba/mae.conf e insira o seguinte parâmetro. veto files = /*.odt/*.ods/*.odb/ # com esse parâmetro iremos restringir as extensões citas, mas apenas no usuário mãe, pois o include no escopo família só será chamada por usuário. Pronto só salvar o arquivo. Abra o arquivo filho /etc/samba/filho.conf e insira o seguinte parâmetro. veto files = /*.mp3/*.mp4/*.pdf/ # com esse parâmetro iremos restringir as extensões citas, mas apenas no usuário filho, pois o include no escopo família só será chamadapor usuário. Pronto só salvar o arquivo. Criando a quota em disco. Abra o arquivo em /etc/fstab e insira os seguintes parâmetros. (acl,usrquota,grpquota) Esses parâmetros devem ser inseridos na partição que se encontra os direitos que você está compartilhando no samba. Ex: No meu caso a minha pasta familia se encontra na raiz do sistemas logo em inseri no / Insira esses três parâmetros acl,usrquota e grpquota e não altera mais nada ou você ira prejudicar o bom funcionamento do ubuntu. Agora reinciando o fstab mount / -o remount,acl Verificando se as configurações foram aplicadas, digite no terminal: mount Se tudo ocorreu bem na partição raiz deverá aparecer os parâmetros que inserimos no fstab. Configurando o quota para os usuário pai, mae e filho. Parâmetro usados edquota -u usuário # chama o arquivo cota de disco para o usuário correspondente. Ex: edquota -u pai Ira abrir o arquivo no nano, para salvar “é ctrl + o” e “enter”, para sair “ctrl +x”. No arquivo cota do usuário pai iremos alterar dois blocos o soft e hard. O soft significa cota mínima para o usuário e o hard a cota máxima para o usuário. Iremos abrir o arquivo cota do pai. Altere o blocos marcado em verde, o primeiro vai a cota mínima e o segundo cota máxima. Eles alterado ficaram dessa forma, 100000 no primeiro bloco e 102400 no segundo bloco Agora é só repetir para mae e para o filho Mae = 70000 e 71680 Filho = 50000 e 51200 Agora iremos reiniciar o samba. service smbd restart service nmdb restart Pronto agora só testar o seu servidor samba. Abra o gerenciador de pastas e de “ctrl + L” e digite smb://nome-do-seu-computador/ ex: smb://ubuntu14/ irá aparecer a pasta familia e só clicar e fazer o login com o usuário e senha que você cadastrou no smbpasswd –a usuário. Obs: Se não aparecer pasta nenhuma é normal pois o serviço do samba demora para subir é só ficar atualizando que as pastas iram aparecer. Abraço por traz bando de fdp.
Compartilhar