Cliente "automágico" Linux logando no domínio NT/Samba

Buscamos, no presente artigo, realizar a configuração de clientes Linux em domínios gerenciados por servidores Windows ou PDC Samba. Trabalhamos com o processo de automatização das configurações necessárias aos clientes por meio da utilização de programação Shell Linux. Integramos os scripts necessários à configuração dos arquivos em uma interface modo texto de gerenciamento.

[ Hits: 39.649 ]

Por: lourival araujo da silva em 03/10/2008


Organizando a casa



Concentramos na interface do programa o gerenciamento dos usuários do sistema local. O mapeamento de recursos compartilhados pelo Servidor de Arquivos, nas máquinas locais, deverá ser feito por meio de módulo do pam (pam_mount.so), configurado no arquivo desse módulo (/etc/security/pam_mount.conf), no Servidor.

Optamos por incluir, no código desse programa, a utilização do "sudo", pelo incremento à segurança que ele agrega. Caso o administrador não utilize a ferramenta pode remover as entradas correspondentes no código do programa (recomenda-se que utilize o sudo). Teremos a seguinte interface para o gerenciamento dos usuários:

       ====================================================
       = CADASTRO DE USUARIOS - CLIENTE DE DOMINIO NT/SAMBA 
       =               VERSAO 0.2.0 - SETEMBRO 2008            
       ====================================================
       =                     CLIENTE DE DOMINIO             
       ====================================================
       =        1) Adicionar usuario                 
       =        2) Bloquear usuario                  
       =        3) Desbloquear usuario               
       =        4) Atualizar senha                   
       =        5) Excluir usuario                   
       =        6) Incluir a maquina no DOMINIO      
       =        7) Sair                              
       ====================================================


      Digite sua opcao [1-7]:

Esse segmento de código corresponde a função de inclusão de usuários no sistema local:

1) echo -n "Digite o nome do usuario a ser incluido: "
read usuario
echo -n "Digite o grupo do usuario: "
read grupo
sudo useradd -d /home/$usuario -s /bin/bash -g $grupo -m $usuario
echo -n "Deseja incluir outro usuario ? [sim/nao] "
read resp

while [ $resp = sim ];do
   echo -n "Digite o nome do novo usuario: "
   read nusuario
   echo -n "Digite o grupo do novo usuario: "
   read ngrupo
   sudo useradd -d /home/$nusuario -s /bin/bash -m -g $ngrupo $nusuario
   echo -n "Deseja incluir outro usuario ? [sim/nao] "
   read resp

   if [ $resp = nao ]; then
      echo "Adicao de usuario concluida.\n"
   fi
   break
done

A inclusão de usuários no sistema local deve ser feita em grupos já existentes. Os usuários do domínio serão buscados no Servidor pela ferramenta winbind do pacote samba. A manipulação dos arquivos /etc/passwd e /etc/shadow, realizada pelo programa de gerenciamento, pode ser tratada de forma flexível, mantendo esses arquivos disponíveis para serem gravados pelo aplicativo gráfico de gerenciamento de usuários, ou de forma rígida deixando o acesso a esses arquivos fechado a outras ferramentas. Precisamos realizar a inserção das linhas abaixo para bloquear o acesso a esses arquivos, na inclusão e na exclusão de usuários:

# chattr +i /etc/passwd
# chattr +i /etc/shadow
# chattr +i /etc/group

# chattr -i /etc/passwd
# chattr -i /etc/shadow
# chattr -i /etc/group


Acrescentamos o caractere imutável ao arquivo (+i) após a edição, e o retiramos (-i) antes da execução dos comandos de adição e exclusão (useradd e userdel). Se inserirmos os comandos de alteração de atributo nos locais correspondente do programa, somente por meio do próprio programa será possível incluir e excluir usuários no sistema.

Esse segmento de código corresponde à função de inclusão de usuários no sistema local, se incluirmos as restrições de segurança:

1) echo -n "Digite o nome do usuario a ser incluido: "
read usuario
echo -n "Digite o grupo do usuario: "
read grupo
chattr -i /etc/passwd
chattr -i /etc/shadow
chattr -i /etc/group
sudo useradd -d /home/$usuario -s /bin/bash -g $grupo -m $usuario
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
echo -n "Deseja incluir outro usuario ? [sim/nao] "
read resp

while [ $resp = sim ];do
   echo -n "Digite o nome do novo usuario: "
   read nusuario
   echo -n "Digite o grupo do novo usuario: "
   read ngrupo
   chattr -i /etc/passwd
   chattr -i /etc/shadow
   chattr -i /etc/group
   sudo useradd -d /home/$nusuario -s /bin/bash -m -g $ngrupo $nusuario
   chattr +i /etc/passwd
   chattr +i /etc/shadow
   chattr +i /etc/group
   echo -n "Deseja incluir outro usuario ? [sim/nao] "
   read resp

   if [ $resp = nao ]; then
      echo "Adicao de usuario concluida.\n"
   fi
   break
done

Página anterior     Próxima página

Páginas do artigo
   1. Criando coragem!
   2. Ajustando arquivos
   3. Entrando no Samba
   4. Organizando a casa
   5. Primeira exibição
   6. Leia os logs
Outros artigos deste autor

Autenticação via hardware: o módulo pam_usb

Configuração "automágica" de servidor Linux PDC Samba

Autenticação via hardware: o módulo pam_blue

Mudança de hábito: autenticando usuários em base de dados MySQL

webCalendar: a agenda e o PAM

Leitura recomendada

ACCT - O contabilizador de processos do Linux

Segurança para leigos

Sistema de gerenciamento de logs do Linux

Bloqueio de repetidas tentativas de login ao seu Linux

Alta Disponibilidade (High Availability) em sistemas GNU/Linux

  
Comentários
[1] Comentário enviado por renato.leite em 04/10/2008 - 08:26h

ta muito bom o Artigo xD

[2] Comentário enviado por araujo_silva em 05/10/2008 - 10:18h

Valeu Xara
Agradecemos sugestões.
Abaços,
araujo_silva


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts