carambola
Linux

5111 – Ex02

Objetivos:

  • Mapeamento de partilhas de rede com protocolo CIFS
  • Criação de credenciais para CIFS e MOUNT
  • Mapeamentos permanentes em FSTAB

Considerando as partilhas criadas anteriormente, e atualizadas, segundo a tabela:

Tabela
Tabela

Tenha atenção que existe uma diferença entre essa tabela e a anterior, nessa tabela a user marta faz parte do grupo IT, por isso a adicione ao grupo IT com o comando sudo usermod -aG it marta.

Vamos começar por adicionar um novo disco de 1GB e formatá-lo com esquema de partições GPT, com uma partição para cada partilha.

Para isso use o comando sudo fdisk /dev/<sdn>, onde <sdn> indica qual é o disco a ser formatado.

fdisk
fdisk

Para criar uma tabela de partições GPT use o comando g.

fdisk - new partition table
fdisk – new partition table

Agora é hora de criar as partições, para isso use o comando n, depois disso será necessário indicar o número da partição, que pode ser de 1 a 128, o fdisk as cria em ordem crescente por definição, por isso nesse caso não há problemas em aceitar a opção padrão, depois disso será pedido para selecionar o primeiro setor da partição.

Cada setor contém 512 bytes, as opções são os setores entre o primeiro setor disponível, que no caso da primeira partição é o setor 2048, e o último, que nesse caso é o setor 2,097,118, o que dá um total de 2,095,070 setores, que dá um total de quase 1023MB ao todo.

Selecione o primeiro setor, 2048 nesse caso, o próximo argumento irá definir o tamanho da partição, isso pode ser feito de diferentes maneiras, selecionando diretamente o número do último setor, adicionando/removendo setores ou adicionando/removendo tamanho em K,M,G,T e P bytes, como quero criar partições de tamanho idêntico irei trabalhar diretamente com setores aqui, e como pretendo criar 5 partições, cada uma delas terá um tamanho de 419,014 setores, nesse caso o próximo argumento será +419013 (termina em 3 porque serão adicionados setores, e já selecionamos o primeiro, portanto se usar +1 a partição ficaria com 2 setores), depois disso a partição foi criada.

fdisk - new partition created
fdisk – new partition created

Agora é só criar o resto das partições, tendo apenas atenção na hora de escolher o primeiro setor, já que por definição o fdisk não seleciona o próximo setor livre, mas sim alguns setores mais adiante, por isso é preciso selecionar manualmente o setor disponível mais baixo.

fdisk - second partition starting sector
fdisk – second partition starting sector

Na imagem acima pode ver que o primeiro setor selecionado foi o primeiro disponível, que fica em torno de 800 setores atrás do setor padrão escolhido para essa partição pelo fdisk.

Seguindo esse padrão é só criar o resto das partições.

fdisk - partitions created
fdisk – partitions created

Na imagem acima podemos ver as 5 partições criadas, agora só falta gravar essa tabela de partições, para isso é só usar o comando w, e depois disso, se utilizarmos o comando lsblk /dev/<sdn> podemos ver o disco com suas 5 partições de tamanho idêntico.

lsblk /dev/sde
lsblk /dev/sde

Agora é preciso as formatar, elas serão formatadas como ext4, para isso iremos usar o comando sudo mkfs.ext4 /dev/<sdnx> -L <label>, onde sdnx indica a partição (ex: sde1, sde2) e label é o nome a ser dado a partição.

mkfs
mkfs

Depois é só repetir o procedimento para o resto das partições.

E aqui podemos ver as 5 partições.

blkid
blkid

Com as partições já criadas está na hora de as montar, para isso é preciso primeiro criar os diretórios onde serão montadas, que nesse caso ficarão dentro de /mnt/hddextra/.

Creating mount points
Creating mount points

Com os mounting points já criados é hora de editar o arquivo /etc/fstab para que as partições sejam montadas automaticamente durante o boot.

Existem três maneiras de selecionar a partição, uma é pelo UUID, outra é selecionando o seu node em /dev, e outra é utilizando seu rótulo, ou label, no caso de usar o UUID, a partição, caso esteja presente no sistema, será sempre montada, independentemente de o disco em que estar ter mudado de sdb para sdc, por exemplo, o que não é o caso se usar seu node em /dev, e o mesmo pode acontecer caso referencie o label, já que esse pode ser alterado, por isso o modo preferencial é identificar as partições pelo seu UUID.

blkid - disk changed /dev node
blkid – disk changed /dev node

Na imagem acima podemos ver como o disco que acabamos de formatar mudou sua localização de /dev/sde para /dev/sdd, enquanto seus UUIDs continuam os mesmos, isso faria com que partições montadas usando esses identificadores não sejam montadas através do fstab.

fstab
fstab

Na imagem acima podemos ver as entradas das 5 partições no fstab sendo referenciadas pelos seus UUIDs.

Depois de adicionar as novas entradas no fstab é hora de montar essas partições, para isso é só usar o comando sudo mount -a, que irá montar todas as entradas do fstab.

Partitions mounted
Partitions mounted

Com as partições já montadas podemos mudar o dono e grupo dos mounting points para melhor os identificar, para isso é só usar o comando sudo chown <user>:<group>.

chown
chown

Agora é preciso alterar a configuração do samba para apontar as partilhas para suas novas localizações, para isso é só abrir o arquivo de configuração em /etc/samba/smb.conf e navegar até as definições das partilhas.

smb.conf
smb.conf

Com o path de cada partilha alterado para apontar para suas novas localizações, e o user marta adicionado à lista de permissão de escrita da partilha IT, o próximo passo é instalar o CIFS no cliente, para isso é só usar o comando sudo apt install cifs-utils, depois disso já será possível montar localmente as partilhas.

Iremos montar as partilhas da seguinte maneira:

  • COMERCIAL -> /mnt/COMERCIAL
  • IT -> /mnt/IT
  • ADMINISTRACAO -> /mnt/admin/ADMINISTRACAO

Vamos primeiro fazer um mapeamento manual das duas primeiras partilhas com autenticação do user marta, e com as credenciais em um arquivo protegido, para evitar colocar credenciais de acesso em locais visíveis.

Para isso é preciso primeiro criar o arquivo com as credenciais, para isso é só criar um novo documento de texto simples com pelo menos dois argumentos, username= e password=, no caso do user marta deve ficar assim:

username=marta
password=Passw0rd

Certifique-se de que esse arquivo com as credenciais pertence ao user e grupo root e mude as permissões para 440, depois mova-o para uma pasta segura, como a pasta /root, por exemplo.

credentials
credentials

Agora está na hora de montar essas pastas, para isso é só usar o comando sudo mount -t cifs -o credentials=<arquivo de credenciais>,rw,uid=<uid do user local>,gid=<gid do user local>,dir_mode=0770 <endereço remoto da partilha> <ponto de montagem>

Mounting COMERCIAL and IT
Mounting COMERCIAL and IT

Como podemos ver, as pastas COMERCIAL e IT, que foram criadas como root agora pertencem ao user e grupo pedro, já que o uid e gid desse user e grupo foram usados como argumentos na hora de mapear a partilha remota.

Vamos agora fazer alguns testes.

Testing share
Testing share

Como podemos ver, no cliente, arquivos criados aparecem como pertencendo ao user local que foi identificado na hora de criar o mapeamento.

Server side share
Server side share

Enquanto isso no servidor, esses mesmos arquivos aparecem como pertencendo ao user marta, que foi usado na autenticação.

Vamos agora fazer a mesma coisa mas para a partilha ADMINISTRACAO nos autenticando com o user filipa, crie outro arquivo com as credenciais desse user, da mesma maneira que foi feita anteriormente.

Mounting ADMINISTRACAO
Mounting ADMINISTRACAO

Novamente iremos testar essa partilha.

Testing ADMINISTRACAO with user filipa
Testing ADMINISTRACAO with user filipa

Novamente, o arquivo criado aparece no cliente como pertencendo ao user local identificado na hora do mapeamento.

Server side
Server side

Enquanto no servidor pertence ao user que foi usado na hora de fazer a autenticação da ligação.

Vamos agora transformar esse mapeamento em um mapeamento permanente editando o arquivo /etc/fstab, mas primeiro vamos “desmontar” essa partilha usando o comando sudo umount /mnt/hddextra/ADMINISTRACAO, depois disso vamos criar um novo arquivo com credenciais, mas dessa vez para o user mariana, que é o outro user que tem permissões de acesso à essa partilha, crie esse arquivo da mesma maneira que foi feita anteriormente, depois disso abra o fstab.

fstab cifs share
fstab cifs share

Com isso, se usarmos o comando sudo mount -a iremos mapear a partilha ADMINSTRACAO em /mnt/ADMINISTRACAO automaticamente, e sempre que o sistema for iniciado ela será mapeada automaticamente.

Mounting ADMINISTRATION through fstab
Mounting ADMINISTRATION through fstab

 

Creating new file on client
Creating new file on client

 

Same file on server
Same file on server

E como podemos ver, funciona perfeitamente da mesma maneira que as partilhas mapeadas manualmente.

Leave a Reply

Your email address will not be published. Required fields are marked *