consamba.sh

Publicado por lourival araujo da silva 10/12/2008

[ Hits: 5.521 ]

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

FTP

Executando comandos remotos usando sshpass

Backup em Fita DDS

Instalação da Multilib no Slackware

Gera estatísticas de tráfego de pacotes nas interfaces de um servidor linux via SNMPv3.


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário