pam_mount e CiD - Gerenciamento centralizado dos mapeamentos de unidades de rede no Ubuntu
Este artigo apresenta a solução pam_mount para o mapeamento automático de unidades de rede durante o logon dos usuários nas estações GNU/Linux, e como o CiD (Closed in Directory) modifica os arquivos de configuração do sistema, para que as definições dos mapeamentos se repliquem em todas as estações da rede.
Introdução
Este artigo apresenta a solução pam_mount para o mapeamento automático de unidades de rede durante o logon dos usuários nas estações GNU/Linux, e como o CiD (Closed in Directory) modifica os arquivos de configuração do sistema, para que as definições dos mapeamentos se repliquem em todas as estações da rede.
No artigo Ubuntu 14.04 no AD com CiD, foi mostrado como utilizar o CiD para permitir o logon de usuários de um domínio AD (Active Directory) em estações Ubuntu.
Lembrando que o CiD trata-se de um Shell Script que faz modificações no sistema para viabilizar esta interoperabilidade. Será, então, apresentada uma dessas "modificações" realizadas, no intuito de configurar o pam_mount (solução para mapeamento de unidades de rede) de forma centralizada, para todas as estações GNU/Linux da rede, viabilizando a montagem automática das unidades de rede durante (e de acordo) ao logon do usuário.
No Ubuntu, o pacote pode ser instalado através do seguinte comando:
sudo apt-get install libpam-mount
* Nota: durante a execução do script de instalação do cid (INSTALL.SH) este pacote já deve ser instalado automaticamente. Logo, basta executá-lo conforme as instruções de instalação do "cid" (ler artigo Ubuntu 14.04 no AD com cid [http://www.vivaolinux.com.br/artigo/Ubuntu-1404-no-AD-com-CiD/]).
O arquivo de configuração global, geralmente é o /etc/security/pam_mount.conf.xml. Como pode-se observar, trata-se de um arquivo no formato XML, onde suas configurações são definidas por tags (<... />).
Segue um exemplo básico deste arquivo de configuração:
Trocando em miúdos:
Devem ter percebido que pulei a tag <volume ... />. Sim, foi de propósito! Não que esta deva ficar por último dentro do arquivo de configuração, pois o ideal é que esteja antes das opções de encerramento (<logout ... />), uma vez que o arquivo é lido pelo módulo da aplicação de cima para baixo.
Mas, sem mais delongas, a deixei por último por ser justamente a nossa "cereja do bolo", pois são dentro dos diversos elementos dessas tags que são definidos os mapeamentos. Então, a deixarei para o próximo capítulo, para que possamos esmiuçar melhor, não todas as suas opções, mas sim, as que nos interessam dentro da finalidade para qual esse artigo foi objetivado.
No artigo Ubuntu 14.04 no AD com CiD, foi mostrado como utilizar o CiD para permitir o logon de usuários de um domínio AD (Active Directory) em estações Ubuntu.
Lembrando que o CiD trata-se de um Shell Script que faz modificações no sistema para viabilizar esta interoperabilidade. Será, então, apresentada uma dessas "modificações" realizadas, no intuito de configurar o pam_mount (solução para mapeamento de unidades de rede) de forma centralizada, para todas as estações GNU/Linux da rede, viabilizando a montagem automática das unidades de rede durante (e de acordo) ao logon do usuário.
O pam_mount
A ideia aqui, não é discorrer sobre a solução de fato, e sim, mostrar como configurá-la de maneira centralizada para realizar o mapeamento automático de compartilhamentos de rede no GNU/Linux. Mais especificamente, sobre o protocolo SMB (ou sistema de arquivos SMB/CIFS), utilizado principalmente nos compartilhamentos de redes Microsoft Windows (suportado também pelo Samba).No Ubuntu, o pacote pode ser instalado através do seguinte comando:
sudo apt-get install libpam-mount
* Nota: durante a execução do script de instalação do cid (INSTALL.SH) este pacote já deve ser instalado automaticamente. Logo, basta executá-lo conforme as instruções de instalação do "cid" (ler artigo Ubuntu 14.04 no AD com cid [http://www.vivaolinux.com.br/artigo/Ubuntu-1404-no-AD-com-CiD/]).
O arquivo de configuração global, geralmente é o /etc/security/pam_mount.conf.xml. Como pode-se observar, trata-se de um arquivo no formato XML, onde suas configurações são definidas por tags (<... />).
Segue um exemplo básico deste arquivo de configuração:
<pam_mount>
<debug enable="0" />
<mkmountpoint enable="1" remove="false" />
<!--
PASTA PÚBLICA (SHARE EM 192.168.1.100)
-->
<volume icase="no" user="*" fstype="cifs" server="192.168.1.100" path="SHARE" mountpoint="/home/%(USER)/SHARE"
options="uid=0,gid=0,iocharset=utf8,soft,file_mode=0777,dir_mode=0777" />
<logout wait="0" hup="yes" term="yes" kill="yes" />
</pam_mount>
<debug enable="0" />
<mkmountpoint enable="1" remove="false" />
<!--
PASTA PÚBLICA (SHARE EM 192.168.1.100)
-->
<volume icase="no" user="*" fstype="cifs" server="192.168.1.100" path="SHARE" mountpoint="/home/%(USER)/SHARE"
options="uid=0,gid=0,iocharset=utf8,soft,file_mode=0777,dir_mode=0777" />
<logout wait="0" hup="yes" term="yes" kill="yes" />
</pam_mount>
Trocando em miúdos:
- <pam_mount> :: tag inicial. Demarca o início das configurações.
- <debug enable=0 /> :: habilita ou desabilita o log da aplicação em /var/log/auth.log. 0 (zero) desabilita, 1 (um) habilita.
- <mkmountpoint enable=1 remove=false /> :: cria e/ou remove os pontos de montagem das unidades a serem mapeadas caso estes ainda não existam.
- <!-- --> :: demarcam o início e o fim de um comentário.
- <logout wait=0 hup=yes term=yes kill=yes /> :: opções para o encerramento da sessão de um usuário. Responsável por matar os processos quando o usuário efetua logoff.
Devem ter percebido que pulei a tag <volume ... />. Sim, foi de propósito! Não que esta deva ficar por último dentro do arquivo de configuração, pois o ideal é que esteja antes das opções de encerramento (<logout ... />), uma vez que o arquivo é lido pelo módulo da aplicação de cima para baixo.
Mas, sem mais delongas, a deixei por último por ser justamente a nossa "cereja do bolo", pois são dentro dos diversos elementos dessas tags que são definidos os mapeamentos. Então, a deixarei para o próximo capítulo, para que possamos esmiuçar melhor, não todas as suas opções, mas sim, as que nos interessam dentro da finalidade para qual esse artigo foi objetivado.
Saudações!