consamba.sh

Publicado por lourival araujo da silva 10/12/2008

[ Hits: 5.995 ]

Download ConSamba25.sh




Programa interativo de configuração de perfis do Servidor Samba. Comporta quatro perfis:

pdc - controlador de domínio;
srv - servidor de arquivos;
cds - perfil misto de pdc e srv;
cld - cliente de dominio.

  



Esconder código-fonte

#!/bin/bash
############################################################################
# Script Basico de Configuracao de Dominio Samba Linux  - Versao 0.3.7     #
# Lourival Araujo da Silva - 5° CTA - Recife / PE - 2008                   #
# Liberado sob GPL em 02 de novembro de 2008                               #
############################################################################
############################################################################
#                           Changelog                                      #
#                                                                          #
# Versao 0.3.7 Novembro 2008                                               #
# - Inclusão de perfis de configuracao: pdc => Controlador de Dominio      #
#               srv => Servidor de Arquivos        #
#               cds => Dominio e Arquivos          #
#               cld => Cliente de Dominio          #
# - Inclusão de Controle Horario de Acesso ao Servidor                     #
# - Liberacao sob licença GPL                                              #
#                                                                          #
# Versao 0.3.6 Outubro 2008                                                #
# - Inclusao de codigo de controle de erro na adicao de usuario            #
# - Adicao de controle dos compartilhamentos do Servidor (pam_mount)       #
#                                                                          #
# Versao 0.3.5 Setembro 2008                                               #
# - Reformulacao do codigo do programa com inclusao de funcoes             #
#                                                                          #
# Versao 0.3.4 Abril 2008                                                  #
# - Inclusao de configurador de Cliente Linux no Servidor PDC              #
#   Essa funcionalidade não deve ser testada no Servidor, pois provoca a   #
#   desconfiguracao do mesmo.Reconfigurando-o como cliente de Dominio.     #
#  (    NAO UTILIZAR ESTA FUNCIONALIDADE NO SERVIDOR          )            #
#                                                                          #
# Versao 0.3.3 Marco 2008                                                  #
# - Inclusao de compartilhamento publico;                                  #
# - Adicao de Changelog                                                    #
#                                                                          #
# Versao 0.3.2 Janeiro 2008                                                #
# - Inclusao de bloqueio e desbloqueio de usuarios;                        #
# - Inclusao de compartilhamento restrito: leitura ou leitura/escrita;     #
#                                                                          #
# Versao 0.3.1 Novembro 2007                                               #
# - Criacao de autenticador de dominio;                                    #
# - Adicao do diretorio dos compartilhamentos;                             #
# - Adicao de grupos ao servidor;                                          #
# - Adicao de usuarios aos grupos do servidor;                             #
# - Adicao de maquinas ao dominio;                                         #
#                                                                          #
############################################################################
############################################################################
trap ' ' 2 3 15;
while true; do
clear
###############################################################################################################################################
###############################################################################################################################################

#############################################################################################################################
#############################################################################################################################
cria_dominio(){
      echo -n "Digite um nome de Dominio: " # criar o dominio de logon
      read dominio
      echo -n "Digite o nome do Servidor: "
      read servidor
      echo -n "Digite o nome da conta do Administrador do Servidor Samba (root): "
      read admin
      echo -n "Digite a Rede do Servidor (192.168.0.0/16): "
      read rede
      sudo smbpasswd -a $admin
      
      echo " 
           [globals]                           

      workgroup = $dominio              
      netbios name = $servidor            
      domain master = yes            
      logon script = netlogon.bat            
      logon home = \\%U\.profiles      
      logon path = \\%L\profiles\%U         
      logon drive = j:         

      security = user   
      encrypt passwords = yes            
      os level = 100

      log file = /var/log/samba/log.%m               
      max log size = 1000                  
      socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
      hosts allow = 127.0.0.0/8  $rede               

      obey pam restrictions = Yes               
      smb passwd file = /etc/samba/smbpasswd         
      passwd program = /usr/bin/passwd %u      
      passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .

      winbind use default domain = yes
      winbind enum users = yes 
      winbind enum groups = yes 
      idmap uid = 10000-20000 
      idmap gid = 10000-20000 
      template homedir = /home/%U 
      template shell = /bin/bash 

           [netlogon]
           comment = Servico de logon 
           path = /var/samba/netlogon 
           guest ok = yes 
           browseable = no 

           [profiles] 
           path = /var/samba/profile  
           writable = yes 
           browseable = no 
           create mask = 0600 
           directory mask = 0700 

           [home] 
           path = /home 
                browseable = no" >>/tmp/smb.conf
      sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old
      sudo mv /tmp/smb.conf /etc/samba/smb.conf

      sudo mkdir -p /var/profiles
      sudo chmod 1777 /var/profiles
      sudo mkdir -p /var/samba/netlogon
      sudo chmod 775 /var/samba/netlogon
      
      echo "Configurando o horario de acesso ao Servidor..."
      echo "
      login;*;*;Wd0800-1800 & !SaSu0000-2359
      ssh;*;*;Wd0800-1800 & !SaSu0000-2359
      ">/tmp/time.conf
      sudo cat /tmp/time.conf >>/etc/security/time.conf
}
cria_base(){
      echo -n "Indique a localizacao do Diretorio dos compartilhamentos (/dados): " # Criar o diretorio-base
      read base
         sudo mkdir -p $base
         sudo chmod -R 2777 $base/
      echo -n "Diretorio-Base criado em $base"
}
cria_publico(){
      echo -n "Digite o nome do Diretorio [publico]: " # Criar compartilhamento de leitura/escrita para todos
      read compart
       echo -n "Indique o diretorio de compartilhamento (/dados): "
      read base
      echo "Criando compartilhamento publico... "
      sudo mkdir -p $base/$compart
      if( ! (grep  nobody /etc/passwd ) );then
         sudo useradd -s /bin/bash -d /dev/null -g nogroup nobody 2>/dev/null
         sudo passwd -l nobody 2>/dev/null
         sudo smbpasswd -a nobody
      fi
      sudo chown -R nobody.nogroup $base/$grupo
      sudo chmod 2777 $base/$compart
      echo "                   
      [$compart] 
      path = $base/$compart 
      writable = yes 
      browseable = yes 
                  public = yes 
                  guest ok = yes" >>/tmp/smb.conf
      sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old
      sudo cat /tmp/smb.conf >>/etc/samba/smb.conf
      echo "Compartilhamento publico criado em $base... "
      sleep 2
      
      echo "Exportando compartilhamento publico criado no Servidor..."
      echo "
      volume * smbfs $servidor $compart ~/$compart uid=&,gid=&,dmask=0750 - -
      ">/tmp/pam_mount.conf
      sudo cat /tmp/pam_mount.conf >>/etc/security/pam_mount.conf
      sleep 3
}
cria_grupo(){
      echo -n "Digite o nome do Grupo: " # Incluir grupos no Servidor de dominio
      read grupo
       echo -n "Digite o caminho do Diretorio dos compartilhamentos no Servidor (/dados): "
      read base
      echo  "Criando compartilhamento no Servidor... "
      echo -n "Deseja criar o diretorio do grupo somente para leitura ? [sim/nao] "
      read resp
      if [ $resp == sim ];then
         sudo groupadd $grupo
         echo "Criando compartilhamento somente para leitura... " # Compartilhar somente leitura para
         sudo mkdir -p $base/$grupo                                    # os membros do grupo
         sudo chgrp -R $grupo $base/$grupo
         sudo chmod -R 2750 $base/$grupo
         echo "
         [$grupo] 
         path = $base/$grupo 
         writable = no 
         browseable = yes 
                   read list = @$grupo 
                   write list = @$grupo 
         admin users = @$grupo @secinfo" >>/tmp/smb.conf
         sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old
         sudo cat /tmp/smb.conf >>/etc/samba/smb.conf
         echo "Criando compartilhamento sem escrita em $base... "
         sleep 2
         
         echo "Exportando compartilhamento sem escrita criado no Servidor..."
         echo "
      volume * smbfs $servidor $compart ~/$compart uid=&,gid=&,dmask=2750, - -
      ">/tmp/pam_mount.conf
         sudo cat /tmp/pam_mount.conf >>/etc/security/pam_mount.conf
         sleep 3
      else
         sudo groupadd $grupo
         echo "Criando compartilhamento para leitura e escrita do grupo... " # Compartilhar leitura/escrita
         sudo mkdir -p $base/$grupo                                      # somente para os membros do grupo
         sudo chgrp -R $grupo $base/$grupo
         sudo chmod -R 2770 $base/$grupo
         sudo echo "                   
         [$grupo] 
         path = $base/$grupo 
         writable = yes 
         browseable = yes 
         read list = @$grupo 
                   write list = @$grupo 
         admin users = @$grupo @secinfo" >>/tmp/smb.conf
         sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old
         sudo cat /tmp/smb.conf >>/etc/samba/smb.conf
         echo "Criando compartilhamento com escrita em $base... "
         sleep 2
         
         echo "Exportando compartilhamento com escrita criado no Servidor..."
         echo "
      volume * smbfs $servidor $compart ~/$compart uid=&,gid=&,dmask=2770 - -
      ">/tmp/pam_mount.conf
         sudo cat /tmp/pam_mount.conf >>/etc/security/pam_mount.conf
         sleep 3
      fi
      echo -n " Grupo $grupo criado em $base."
      sleep 4
}
inclui_usuario(){
      echo "Incluindo novo usuario..."
      RESP=sim # Incluir usuarios nos grupos ja existentes no Servidor
      until [ RESP = "nao" ];do
      echo -n "Indique o Grupo para inclusao do usuario: "
      read grupo
      GRP="$(grep $grupo /etc/group |cut -d: -f1)"
      if [ ! $GRP ];then
         echo "O grupo $grupo nao existe."
         sleep 2
         continue
      fi
      echo -n "Digite o nome do Usuario: "
      read usuario
#         chattr -i /etc/passwd # Opcoes utilizaveis caso se queira bloquear o acesso aos arquivos de senhas
#         chattr -i /etc/shadow
#         chattr -i /etc/group
         sudo useradd -s /bin/bash -d /home/$usuario -m -g $grupo $usuario # incluir o usuario no grupo
            if [ $? = 1 ];then
               echo "Nao foi possivel cadastrar o usuario. Verifique se usou caracter especial."
            fi
         sudo mkdir -p /home/$usuario/profile.pds # criar perfil para cada usuário
         sudo chown -R $usuario. /home/$usuario/profile.pds # atribuir propriedade sobre o perfil para cada usuário
#         chattr +i /etc/passwd # Opcoes utilizaveis caso se queira bloquear o acesso aos arquivos de senhas
#         chattr +i /etc/passwd
#         chattr +i /etc/group
#         sudo smbpasswd -a $usuario # incluir o usuario no grupo
      
      echo "Deseja adicionar um novo usuario ? "
      echo -n "Responda [sim ou nao]: "
      read RESP
         if [ "$RESP" = "nao" ];then
         echo "Adicao de usuario concluida."
         sleep 2
         clear   
         break
         fi
      done
}
exclui_usuario(){
      echo -n "Digite o nome do usuário a ser excluido: " # Excluir usuarios cadastrados
      read usuario
      if( ! (grep $usuario /etc/passwd ) );then
         echo "Nao foi possivel excluir o usuario."
         sleep 2
         clear
         continue
      fi
      if( grep $usuario /etc/passwd ); then
         sudo smbpasswd -x $usuario 2>/dev/null
         sudo userdel -r $usuario 2>/dev/null
         echo "Usuario excluido com sucesso."
         sleep 2
         clear
         continue
      fi
}

bloqueia_usuario(){
      echo -n "Digite o nome do usuario a ser bloqueado: " # Bloqueio temporario de usuarios no dominio (ferias)
      read usuario
      if( ! (grep $usuario /etc/passwd ) );then
         echo "Nao foi possivel bloquear o usuario."
         sleep 2
         clear
         continue
      fi
      sudo smbpasswd -d $usuario 2>/dev/null
      sudo passwd -l $usuario 2>/dev/null
      if [ $? == 0 ]; then
         echo -n "Usuario bloqueado com sucesso."
         sleep 2
         clear
         continue
      fi
}

desbloqueia_usuario(){
       echo -n "Digite o nome do usuario a ser desbloqueado: " # Desbloqueio de usuarios no dominio
      read usuario
      if( ! (grep $usuario /etc/passwd ) );then
         echo "Nao foi possivel desbloquear o usuario."
         sleep 2
         clear
         continue
      fi
      sudo passwd -u $usuario 2>/dev/null
      sudo smbpasswd -e $usuario 2>/dev/null
         echo -n "Usuario desbloqueado com sucesso."
         sleep 2
         clear
         continue
}

adiciona_maquina(){ # Inclui conta de maquina no dominio
      echo -n "Digite o nome da maquina a ser incluida no Dominio: " 
      read nome
      maquinas="$(grep maquinas /etc/group |cut -d: -f1)"
         if [ ! $maquinas ];then
            sudo groupadd maquinas
         fi
         if( ! (grep $nome /etc/passwd ) );then
            sudo useradd -s /bin/false -d /dev/null -g maquinas $nome$
            sudo passwd -l $nome$
            smbpasswd -a -m $nome
            echo "criada conta de maquina no dominio."
            sleep 4
            continue
         else
            echo "maquina $nome ja cadastrada anteriormente."
            sleep 4
            continue
         fi
}

exclui_maquina(){
      echo -n "Digite o nome da maquina a ser excluida: " # Excluir maquinas cadastradas no dominio
      read maquina
#      smbpasswd -x $maquina
      sudo userdel -r $maquina$
      echo -n "Maquina excluida do Dominio."
      sleep 2
}

valor_invalido(){
      clear
      tput cup 17 18;echo "Valor inadequado. Digite um valor valido. "
      sleep 2
      continue
}

##########################################################################################################################################
cria_samba(){
      echo -n "Digite um nome do seu Dominio ou Grupo de Trabalho: " 
      read dominio
      echo -n "Digite o nome desse Servidor Samba: "
      read servidor
      echo -n "Digite o nome da conta do Administrador desse Servidor Samba (admin): "
      read admin
      echo -n "Digite a Rede desse Servidor (192.168.0.0/16): "
      read rede
      sudo smbpasswd -a $admin
      
      echo -n "Deseja juntar o Servidor Samba a um Dominio ? [sim|nao] "
      read resp
      if [ $resp == sim ];then
            echo -n "Digite o nome do Dominio: "
            read ndominio
            echo -n "Digite o nome do Servidor de Dominio: "
            read nservidor
            echo -n "Digite o nome do administrador do Dominio [admin]: "
            read nadmin
            sudo net rpc join -W $ndominio -S $servidor -U $nadmin
            continue
      else
            clear
            continue
      fi

      echo " 
           [globals]                           

      workgroup = $dominio              
      netbios name = $servidor            
      domain master = no            
      
      security = user   
      encrypt passwords = yes            
      os level = 30

      log file = /var/log/samba/log.%m               
      max log size = 1000                  
      socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
      hosts allow = 127.0.0.0/8  $rede               

      obey pam restrictions = Yes               
      passwdb backend = /etc/samba/smbpasswd         
      passwd program = /usr/bin/passwd %u      
      passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n*password\supdated\ssuccessfully* .

      winbind use default domain = yes
      winbind enum users = yes 
      winbind enum groups = yes 
      idmap uid = 10000-20000 
      idmap gid = 10000-20000 
      template homedir = /home/%U 
      template shell = /bin/bash 

      
           [home] 
      path = /home
                browseable = no" >>/tmp/smb.conf
      sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old
      sudo mv /tmp/smb.conf /etc/samba/smb.conf

      echo "Configurando o horario de acesso ao Servidor..."
      echo "
      login;*;*;Wd0800-1800 & !SaSu0000-2359
      ssh;*;*;Wd0800-1800 & !SaSu0000-2359
      ">/tmp/time.conf
      sudo cat /tmp/time.conf >>/etc/security/time.conf
}

########################################################################################################################################
########################################################################################################################################


pdc(){
tput cup 0 19;
trap ' ' 2 3 15;
while true; do
tput cup 10 12;echo "
      #################################################################### 
      PROGRAMA DE CONFIGURACAO DE SERVIDOR DE DOMINIO LINUX - Versao 0.3.7 
               Autor: LOURIVAL ARAUJO DA SILVA - 5º  CTA - RECIFE - PE
          Liberado sob GPL em 02 de novembro de 2008             
      #################################################################### 
                                                                         
      1 -  Criar o DOMINIO (PDC Samba)                                   
      2 -  Criar Grupos no Servidor de Dominio                           
      3 -  Incluir usuario nos Grupos do Dominio                         
      4 -  Excluir usuario do Dominio
      5 -  Bloquear senha de usuario do Dominio                          
      6 -  Desbloquear senha de Usuario do Dominio     
      7 -  Adicionar maquina ao Dominio 
      8 -  Excluir maquina do Dominio                                    
      9 -  Sair do programa de configuracao                              
                                                                          
      ####################################################################
      ####################################################################
                                                                         "
echo "                                                                   " 
echo -n "      Digite a opcao de configuracao desejada: "
read opcao
   case $opcao in   
   1) cria_dominio
;;
   2) cria_grupo
;;
   3) inclui_usuario
;;
   4) exclui_usuario
;;
   5) bloqueia_usuario
;;
   6) desbloqueia_usuario
;;
   7) adiciona_maquina
;;
   
   8) exclui_maquina
;;
   
   9)  clear;
       break;
;;
   *) valor_invalido;
;;
   esac
done
}

###################################################################################################
###################################################################################################

srv(){
tput cup 0 19;
trap ' ' 2 3 15;
while true; do
tput cup 10 12;echo "
      ###################################################################### 
      PROGRAMA DE CONFIGURACAO DE SERVIDOR DE ARQUIVOS LINUX - Versao 0.3.7
               Autor: LOURIVAL ARAUJO DA SILVA - 5º  CTA - RECIFE - PE
          Liberado sob GPL em 02 de novembro de 2008             
      ###################################################################### 
                                                                         
      1 -  Criar SERVIDOR DE ARQUIVOS SAMBA                              
      2 -  Criar o Diretorio dos Compartilhamentos no SERVIDOR       
      3 -  Criar Grupos e Compartilhamentos Restritos                      
      4 -  Criar Compartilhamento Publico                                  
      5 -  Incluir usuario nos Grupos do Servidor de Arquivos              
      6 -  Excluir usuario do Servidor de Arquivos
      7 -  Bloquear senha de usuario do Servidor de Arquivos              
      8 -  Desbloquear senha de Usuario no Servidor de Arquivos 
      9 -  Sair do programa de configuracao                              
                                                                          
      #####################################################################
      #####################################################################
                                                                          "
echo "                                                                    "
echo -n "      Digite a opcao de configuracao desejada: "
read opcao
   case $opcao in   
   1) cria_samba
;;
   2) cria_base
;;
   3) cria_grupo
;;
   4) cria_publico
;;
   5) inclui_usuario
;;
   6) exclui_usuario
;;
   7) bloqueia_usuario
;;
   8) desbloqueia_usuario
;;
   9) clear
      break
;;
   *) valor_invalido;
;;
   esac
done
}

##############################################################################################################################################
##############################################################################################################################################

cds(){
tput cup 10 19;
trap ' ' 2 3 15;
while true; do
tput cup 10 12;echo "
      ##################################################################### 
      PROGRAMA DE CONFIGURACAO DE SERVIDOR DE DOMINIO LINUX - Versao 0.3.7 
               Autor: LOURIVAL ARAUJO DA SILVA - 5º  CTA - RECIFE - PE
          Liberado sob GPL em 02 de novembro de 2008             
      ##################################################################### 
                                                                          
      1 -  Criar SERVIDOR DE DOMINIO E ARQUIVOS (PDC Samba)                
      2 -  Criar o Diretorio dos Compartilhamentos no SERVIDOR       
      3 -  Criar Grupos e Compartilhamentos Restritos                       
      4 -  Criar Compartilhamento Publico                                   
      5 -  Incluir usuario nos Grupos do Dominio                         
      6 -  Excluir usuario do Dominio
      7 -  Bloquear senha de usuario do Dominio                           
      8 -  Desbloquear senha de Usuario do Dominio     
      9 -  Adicionar conta de maquina ao Dominio 
      10 - Excluir maquina do Dominio                                     
      11 - Sair do programa de configuracao                              
                                                                           
      ####################################################################
      ####################################################################
                                                                         "
echo "                                                                   " 
echo -n "      Digite a opcao de configuracao desejada: "
read opcao
   case $opcao in   
   1) cria_dominio
;;
   2) cria_base
;;
   3) cria_grupo
;;
   4) cria_publico
;;
   5) inclui_usuario
;;
   6) exclui_usuario
;;
   7) bloqueia_usuario
;;
   8) desbloqueia_usuario
;;
   9) adiciona_maquina
;;
   10) exclui_maquina
;;
   11) clear
       break
;;
   *) valor_invalido;
;;
   esac
done
}

##############################################################################################################################################
##############################################################################################################################################

cld(){
#!/bin/bash
#PROGRAMA DE CLIENTE DE DOMINIO - SERVIDOR DE DOMINIO $HOSTNAME
#Programa ConSamba.sh liberado,em 20Set08, sob licença GPL
#por LOURIVAL ARAUJO DA SILVA - 5º CTA - RECIFE - BRASIL
trap ' ' 2 3 15;
while true; do
#   clear
   adiciona_usuario(){
      echo -n "Digite o nome do usuario a ser incluido: "
      read usuario
      cadastro="$(grep -i $usuario /etc/passwd|cut -d: -f1)"

      if [ ! "$cadastro" ];then
         echo "Usuario $usuario nao existe. Criando o usuario $usuario..."
         echo -n "Digite o grupo do usuario: "
         read grupo
         GRP=$(grep $grupo /etc/group |cut -d: -f1)

         if [ ! $GRP ];then
            echo "O grupo $grupo nao existe."
            sleep 2
            continue
         fi

      sudo useradd -d /home/$usuario -s /bin/bash -g $grupo -m $usuario
      sudo passwd $usuario
      sleep 2
      fi
  
      echo -n "Deseja incluir outro usuario ? [sim/nao] "
      read resp

      while [ $resp = sim ];do
  
         echo -n "Digite o nome do novo usuario: "
         read nusuario
         cadastro="$(grep -i $nusuario /etc/passwd|cut -d: -f1)"
         if [ ! "$cadastro" ];then
            echo "Usuario $nusuario nao existe. Criando o usuario $nusuario..."
            echo -n "Digite o grupo do novo usuario: "
            read ngrupo
            GRP=$(grep $ngrupo /etc/group |cut -d: -f1)
  
            if [ ! $GRP ];then
               echo "O grupo $ngrupo nao existe."
               sleep 2
               continue
            fi
  
            sudo useradd -d /home/$nusuario -s /bin/bash -m -g $ngrupo $nusuario
            sudo passwd $nusuario
            sleep 2
         fi
  
         echo -n "Deseja incluir outro usuario ? [sim/nao] "
         read resp
  
         if [ $resp = nao ]; then
             echo "Adicao de usuario concluida."
             sleep 2
        break
         fi
      done

   }

   bloqueia_usuario(){
      echo -n "Digite o nome do usuario a ser bloqueado: "
      read usuario
      cadastro="$(grep -i $usuario /etc/passwd|cut -d: -f1)"

      if [ ! "$cadastro" ];then
         echo "Usuario $usuario nao existe."
         sleep 2
         continue
      else
         sudo passwd -l $usuario
         echo "Usuario $usuario bloqueado."
         sleep 2
         continue
      fi
   }

   desbloqueia_usuario(){
      echo -n "Digite o nome do usuario a ser desbloqueado: "
      read usuario
      cadastro="$(grep -i $usuario /etc/passwd|cut -d: -f1)"

      if [ ! "$cadastro" ];then
         echo "Usuario $usuario nao existe."
         sleep 2
         continue
      else
         sudo passwd -u $usuario
         echo "Usuario $usuario desbloqueado."
         sleep 2
         continue
      fi
   }

   atualiza_senha(){
      echo    "Atualizacao de senha."
      echo -n "Digite o nome do usuario: "
      read usuario
      cadastro="$(grep -i $usuario /etc/passwd|cut -d: -f1)"

      if [ ! "$cadastro" ];then
         echo "Usuario $usuario nao existe."
         sleep 2
         continue
      else
         sudo passwd $usuario
         echo "Senha do usuario $usuario atualizada."
         sleep 2
         continue
      fi
   }

   exclui_usuario(){
      echo -n "Digite o nome do usuario a ser excluido: "
      read usuario
      cadastro="$(grep -i $usuario /etc/passwd|cut -d: -f1)"

      if [ ! "$cadastro" ];then
         echo "Usuario $usuario nao existe."
         sleep 2
         continue
      else
         sudo userdel -r $usuario
         echo "Senha do usuario $usuario atualizada."
         sleep 2
         continue
      fi
   }

   inclui_dominio(){
      echo -n "Digite um nome do Dominio: "
      read dominio
      echo -n "Digite o nome do Servidor de Domínio: "
      read servidor
      
      echo -n "Digite o nome da Maquina a ser incluida no Dominio: "
      read maquina
      
      echo -n "Digite a conta do Administrador de Domínio (admin): "
      read admin
      
      echo "
[globals]

workgroup = $dominio
netbios name = $maquina

security = domain
encrypt passwords = yes
os level = 10

log file = /var/log/samba/log.%m
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
hosts allow = 127.0.0.0/8  $rede

obey pam restrictions = Yes
smb passwd file = /etc/samba/smbpasswd

winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
idmap uid = 10000-20000
idmap gid = 10000-20000

[home]
comment = Directorio Pessoal
create mask = 0700
directory mask = 0700
browseable = No

[printers]
path = /tmp
browseable = No
comment = Impressoras de Rede
guest ok = No
read only = No
print ok = Yes" >>/tmp/smb.conf

      sudo cp /etc/samba/smb.conf /tmp/smb.conf.old
      sudo mv /tmp/smb.conf /etc/samba/smb.conf
  
      sudo echo " ">/tmp/login
      sudo echo "
#PAM - 1.0
# Arquivo gerado pelo script ConSamba.sh Versao 0.3.5 - Setembro 2008 - $(date +%H:%M:%S-%d/%m/%Y)
#/etc/pam.d/login
auth       requisite  pam_securetty.so
auth       requisite  pam_nologin.so
auth       required   pam_unix.so
auth       required   pam_cracklib.so
auth       required   pam_mount.so use_first_pass
auth       sufficient pam_winbind.so use_first_pass


account    required   pam_unix.so
account    sufficient pam_winbind.so use_first_pass

session    optional   pam_mkhomedir.so skel=/etc/skel umask=0022
session    required   pam_mount.so use_first_pass
session    required   pam_limits.so
session    optional   pam_motd.so

password   required pam_unix.so
password   sufficient pam_winbind.so use_first_pass" >>/tmp/login

      sudo cp /etc/pam.d/login /tmp/login.old
      sudo mv /tmp/login /etc/pam.d/login
  
      sudo echo " ">/tmp/kdm
      sudo echo "
#PAM - 1.0
# Arquivo gerado pelo script ConSamba.sh Versao 0.3.5 - Setembro 2008 - $(date +%H:%M:%S-%d/%m/%Y)
#/etc/pam.d/kdm
auth       requisite  pam_nologin.so
auth       required   pam_unix.so
auth       required   pam_cracklib.so
auth       required   pam_mount.so use_first_pass
auth       sufficient pam_winbind.so use_first_pass


account   required   pam_unix.so
account   sufficient pam_winbind.so use_first_pass

session    optional   pam_mkhomedir.so skel=/etc/skel umask=0022
session    required   pam_mount.so use_first_pass
session    required   pam_limits.so
session    optional   pam_motd.so

password   required pam_unix.so
password   sufficient pam_winbind.so use_first_pass" >>/tmp/kdm

      cp /etc/pam.d/kdm /tmp/kdm.old
      sudo mv /tmp/kdm /etc/pam.d/kdm
  
      sudo echo " ">/tmp/nsswitch.conf
      sudo echo "
# Arquivo gerado pelo script ConSamba.sh Versao 0.3.5 - Setembro 2008 - $(date +%H:%M:%S-%d/%m/%Y)
#/etc/nsswitch.conf
passwd:         compat winbind
group:          compat winbind
shadow:         compat winbind
hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files
protocols:      db files
services:       db files
ethers:         db files
rpc:            db files
netgroup:       nis" >>/tmp/nsswitch.conf

      sudo cp /etc/nsswitch.conf /tmp/nsswitch.conf.old
      sudo mv /tmp/nsswitch.conf /etc/nsswitch.conf
  
      apt-get install libpam-modules libpam-mount libpam-cracklib winbind
  
      net rpc join   -W $dominio -S $servidor -U $admin 2>>/tmp/errodominio
      wbinfo -u 2>>/tmp/errodominio
      wbinfo -g 2>>/tmp/errodominio
      getent passwd 2>>/tmp/errorusiarios
      getent group 2>>/tmp/errousuarios
      sleep 2
      continue
   }

   sair(){
      clear
      break 
   }
  
   valor_errado(){
      clear
      tput cup 17 18;echo "Valor invalido. Digite um valor aceitavel. "
      sleep 2
      clear
      continue
   }

   tput cup 10 19;echo "
          ====================================================
          CADASTRO DE USUARIOS - CLIENTE PDC SAMBA/NT
                   VERSAO 0.2.0 - SET 2008
          ====================================================
                   CLIENTE DE DOMINIO $HOSTNAME
          ====================================================  
          1) Adicionar usuario local
          2) Bloquear usuario local
          3) Desbloquear usuario local
          4) Atualizar senha local
          5) Excluir usuario local
          6) Juntar a maquina ao DOMINIO
          7) Sair
          ==================================================== "
   tput cup 25 10; echo -n "Digite sua opcao [1-7]: "
   read opcao
   case $opcao in
      1) adiciona_usuario
         ;;
      2) bloqueia_usuario
         ;;
      3) desbloqueia_usuario
         ;;
      4) atualiza_senha
         ;;
      5) exclui_usuario
         ;;
      6) inclui_dominio
         ;;
      
      7) sair
         ;;
      
      *) valor_errado
         ;;
   esac
done
}

###################################################################################################################################################
###################################################################################################################################################

tput cup 10 12; echo -n "
        ######################################################################
        #                                                                    #
        #      Escolha o perfil de Servidor que deseja instalar:             #
        #                                                                    #
   #      PDC => Controlador de Dominio Samba                           #
        #      SRV => Servidor de Arquivos Samba                             #
        #      CDS => Controlador de Dominio Samba com Servidor de Arquivos  #
        #      CLD => Cliente de Dominio Samba                               #
        #                                                  #
        #      S   => Sair do Programa de Configuracao.                      #
        #                                                                    #
        ######################################################################

"
   tput cup 24 9; echo -n "Digite a sua opcao: ";
   read opcao
   
   case $opcao in
      PDC)    clear;
         tput cup 10 19;echo "PDC => perfil Controlador de Dominio.";
         pdc;
   ;;
      SRV)    clear;
         tput cup 10 19;echo "SRV => perfil Servidor de Arquivos.";
         srv;
   ;;
      CDS)    clear;
         tput cup 10 19;echo "CDS => perfil Controlador e Servidor.";
         cds;
   ;;
      CLD)    clear;
         tput cup 10 19;echo "CLD => perfil Cliente de Dominio.";
         cld;
   ;;
      S)    clear;
         exit;
   ;;
      *)    clear;
         valor_invalido;
   ;;
   esac
done

Scripts recomendados

LINUX+SAMBA+QUOTAS

Converter Arquivo RMVB para AVI

Criando vários usuários no LDAP a partir de um arquivo

Monitore vários servidores ao mesmo tempo com Apache + shellscript

Front-end para o Samba


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts