configurar do samba e pureftpd

Publicado por Robert Willian 15/10/2005

[ Hits: 7.474 ]

Download scriptconf_v38.sh




configura o samba como PDC ou nao da rede com varias opções de gerenciamento, para pure gerencia usuarios e o serviço...
obs: meu primeiro script publicado ..... :-)

  



Esconder código-fonte

#!/bin/bash
# Script escrito por Robert Willian Gil
#
#   Para uso com PureFtpd compilar o pacotes com a opcao
#   --with-everything , e ao executar pela primeira vez
#   o scritp comecar com a opcao 3 depois a opcao 2 e
#   por ultimo a opcao 1 para iniciar o servico.
#   Para iniciar o servico junto com o sistema na
#   inicializacao, gerar o rc.pureftpd usando a opcao
#   numero 8 no menu do pureftpd e que vai gerar
#   o arquivo /etc/rc.d/rc.pureftpd e inserir uma entrada
#   no rc.local para executar o mesmo.
#   editar o arquivo gerado e fazer algumas configuracoes
#   necessarias.
#   EX:
#   no arquivo rc.local:
#
#      /etc/rc.d/rc.pureftpd      #isso o fara executar no inicializacao
#
#      Padrao:      /etc/rc.d/rc.pureftpd

#         Para configurar as estacoes seguir procedimentos 
#         descritos em tutos espalhados ne net.
menuprogramas () {
clear
echo "                       ### Menu Principal ###"
echo "         Opcoes de programas a configurar usando este script. "
echo
echo "         1. Samba"
echo "         2. PureFTP"
echo "         3. Acertar Horas e Data"
echo "         4. Sair do script"
echo
echo -n "      Escolha a Opcao.  =>  "
read programa
case "$programa" in
    1 ) esambamenu ;;
    2 ) epureftpmenu ;;
    3 ) fdata ;;
    4 ) clear && exit ;;
    * ) clear ; echo ; echo ; echo ; echo ; echo "          [ "$programa" ] opssao invalida! Entre com uma opcao valida!" ; sleep 3 && echo "" ; echo ""  && clear && menuprogramas
esac
}
fdata () {
   read -n 2 -p "      HH:MM  => " hrs
   read -n 2 -p ":" min
   echo
   read -n 2 -p "      DD/MM/AAAA  =>  " dia
   read -n 2 -p "/" mes
   read -n 4 -p "/" ano
   echo
   echo -n "      "
   date $mes$dia$hrs$min$ano
   clock -w
}
#########    Aqui comeca o script do samba   #########

esambamenu () {
esamba () {
echo "                       ### Menu Principal Samba ###"
echo
echo "           1. Gerar smb.conf em /etc/samba/"
echo "           2. Adicionar Compartilhamentos."
echo "           3. Adicionar Maquinas."
echo "           4. Adicionar Usuarios."  
echo "           5. Adicionar Usuario root no samba."
echo "           6. Excluir Maquinas."
echo "           7. Excluir Usuarios."
echo "           8. Reiniciar o servico."
echo "           9. Sair do script"
echo "           10. Voltar ao Menu Programas"
echo 
echo -n "      Escolha a Opcao.  =>  "
read opssao
case "$opssao" in
    1 ) mkdirsamba ;;
    2 ) settingsshare ;;
    3 ) addmaquinas ;;
    4 ) addusers ;;
    5 ) smbpasswd -a root && sleep 1 &&  echo "Usuario root Criado" ;;
    6 ) removemaquinas ;;
    7 ) removeusers ;;
    8 ) killsmb ;;
    9 ) clear && exit ;;
    10 ) clear && menuprogramas ;;
    * ) clear ; echo ; echo ; echo ; echo ; echo "          [ "$opssao" ] opssao invalida! Entre com uma opcao valida!" ; sleep 2 && echo "" ; echo ""  && clear && esamba
esac
}
killsmb () {
   echo "         Finalizando o Samba"
   killall smbd
   killall nmbd
   sleep 1
   echo "         Iniciando o Samba"
   smbd && nmbd
   sleep 1
   echo "         Servico Iniciado!"
}
mkdirsamba (){
   if [ -e /etc/samba ]
   then
   echo "      O arquivo /etc/samba/smb.conf e /etc/samba/smbpasswd"
   echo "      ja existem! Com a nova geracao os arquivos existentes serao "
   echo -n "      APAGADOS ! Deseja continuar ? Yes/No Enter = Yes  = "
   read jaexistecheck
   if [ -z "$jaexistecheck" ] ; then
      jaexiste="Yes"
   else
      jaexiste="$jaexistecheck"
   fi     
   case "$jaexiste" in
    Yes ) settings ;;
    No  ) exit ;;
    * ) clear ; echo ; echo ; echo ; echo ; echo "          [ "$jaexiste" ] opssao invalida! Entre com uma opcao valida!  Yes/No " ; sleep 3 && echo "" ; echo ""  && clear && mkdirsamba
esac
   else
   echo "      A pasta /etc/samba nao exite" && echo "      Criando a pasta /etc/samba" && sleep 2 && mkdir /etc/samba && echo "      Pasta Criada!" && settings
   fi }
gerasamba () {
echo "[global]
        Workgroup   = "$dominio"
        server string = "$nameofserver"
        hosts allow  = "$ips"
        security = "$nivelseg"
        log file = /var/log/samba/log.%m
        max log size = 100
        logon script = %U.bat
        domain logons = "$logonserver"
        os level = 100
        encrypt passwords = Yes
        smb passwd file = /etc/samba/smbpasswd
        preferred master = "$logonserver"
        domain master = "$logonserver"
        local master = "$logonserver"
        netbios name = "$nameofserver"
   printcap name = "$simp1"
   load printers = "$simp2"
   printing = bsd
   
[netlogon]   

        comment = Network Logon Service
        path = /home/netlogon 
        guest ok = Yes
        share modes = No


[profiles]
        comment = Linux PDC
        path = /home/profiles/%U
        read only = No
        create mask = 0700
        profile acls = Yes
        browseable = No
        guest ok = Yes
        locking = No" > /etc/samba/smb.conf && echo "      Gerando smb.conf" && sleep 1 && touch /etc/samba/smbpasswd

   if [ $simp3 = "sim" ] ; then
echo "[printers]
     comment = All Printers
     browseable = no
     guest ok = yes
     public = yes
     printable = yes" >> /etc/samba/smb.conf && echo "      Pronto." && pergunta1
   else
      echo "       Pronto." && pergunta1
   fi      
}
settings (){
echo
echo -n "      Nome do Dominio ou Grupo ?   Enter = Gerencial    =  "
read dominiocheck
if [ -z "$dominiocheck" ] ; then
         dominio="Gerencial"
 else
         dominio="$dominiocheck"
fi
echo -n "      Faixa de IP? Enter = 192.168.200.    =  "
read ipscheck
if [ -z "$ipscheck" ] ;then
   ips="192.168.200."
else
   ips="$ipscheck"
fi
echo -n "      Nome do Servidor?  Enter = SrvLinux     =  "
read nameofservercheck
if [ -z "$nameofservercheck" ] ;then
   nameofserver="SrvLinux"
else
   nameofserver="$nameofservercheck"
fi
echo -n "      Servidor de logon/Dominio ?  Yes / No    Enter = No   =  " 
read logonservercheck
if [ -z "$logonservercheck" ] ; then
   logonserver="No"
else
   logonserver="$logonservercheck"
fi

servimp () {
echo -n "      Path do arquivo printcap.  Enter = /etc/printcap  =  "
read pathprint
if [ -z $pathprint ] ; then
   printcap="/etc/printcap"
else
   printcap="$pathprint"
fi
   simp1="$printcap"
   simp2="Yes"
}   

echo -n "      Servidor de impressao? Yes / No    Enter = Yes  =  "
read checksimp
if [ -z $checksimp ] ; then
   simp3="sim"
   servimp
else
   if [ $checksimp = "Yes" ] ; then
      simp3="sim"
      servimp
   else
      simp1="Not Configured"
      simp2="No"
      simp3="nao"
   fi
fi
echo    "        Nivel de segunç"
echo "         share = Segurança nivel de compartilhamento."
echo "         user = Segurança nivel de servidor, apenas acessarao"
echo "         usuarios autenticados no dominio ou com login e senha."
echo "         Nivel de segurançescolhido?                =  "
echo -n "      user / share?      Enter = share              =  "
read nivelsegcheck
if [ -z "$nivelsegcheck" ] ; then
   nivelseg="share"
else
   nivelseg="$nivelsegcheck"
fi
gerasamba 
}
addshare () {
echo "
["$nameshare"]
        public = yes
        comment = "$comment"
        path = "$patharq"
        create mask = 0777
        writable = "$writable"
        browseable = yes
        guest ok = "$guestok" " >> /etc/samba/smb.conf && echo "         Criando Compartilhamento." && sleep 1 && echo "         Pronto." && pdesliga

}
settingsshare () {
echo -n "         Nome do Compartilhamento?  Enter = Soft   =  "
read namesharecheck
if [ -z "$namesharecheck" ] ; then
   nameshare="Soft"
else
   nameshare="$namesharecheck"
fi
echo  "         Comentario para a pasta. "
echo -n "         Enter = Pasta "$nameshare"   =  "
read commentcheck
if [ -z "$commentcheck" ] ; then
   comment="Pasta $nameshare"
else
   comment="$commentcheck"
fi
echo  "         Path do compartilhamento? "
echo -n "         Enter = /soft             =  "
read patharqcheck
if [ -z "$patharqcheck" ] ; then
   if [ -e /soft ] ; then
      patharq="/soft"
echo "        Nao serao trocadas as permissoes das subpastas, cabendo"
echo "        ao administrador setar permissoes nas devidas pastas."
echo "        Enter para continuar"
read nulo   
      else
      echo "          A pasta /soft nao existe, criando-a"
      mkdir /soft
      chmod 777 /soft -R
      sleep 1 && echo "         Pasta Criada!"
      patharq="/soft"
   fi
else
   if [ -e "$patharqcheck" ] ; then
      patharq="$patharqcheck"
   else
      echo "          A pasta "$patharqcheck" nao existe, criando-a"
      mkdir -p "$patharqcheck"
      chmod 777 $patharqcheck -R
      sleep 1 && echo "          Pasta Criada!"
      patharq="$patharqcheck"
   fi
fi
   
   
echo "         Permitir escrita?  yes/no  "
echo -n "         Enter = yes                =  "
read writablecheck
if [ -z "$writablecheck" ] ; then
   writable="yes"
else
   writable="$writablecheck"
fi
echo "         Permitir guest?  yes/no  "
echo -n "         Enter = yes               =  "
read guestokcheck
if [ -z "$guestokcheck" ] ; then
   guestok="yes"
else
   guestok="$guestokcheck"
fi
addshare
}
pdesliga () {
   echo "         E necessario reiniciar o servico para que as alteracoes"
   echo "         surtam efeito,"
        echo -n "         Deseja reiniciar o samba agora? yes/no    Enter  =  y   =  "
   read pdescheck
   if [ -z "$pdescheck" ] ; then
      pdes="yes"
        else
      pdes="$pdescheck"
        fi
case $pdes in 
   yes ) killsmb ;;
   no ) exit ;;
   * ) echo "       Escolha uma opcao valida" ; sleep 1 && pdesliga
esac
}   
   
pergunta1 () {
echo -n "      Deseja criar compartilhamentos? yes/no   Enter = Yes   =  "
read yesnocheck
if [ -z "$yesnocheck" ] ; then
   yesno="yes"
else
   yesno="$yesnocheck"
fi
case "$yesno" in
 yes ) settingsshare ;;
 no ) pdesliga ;;
 * ) echo "      Digite 'yes' ou 'no'" && sleep 1 && pergunta1
esac
}
addmaquinas () {
echo -n "      Nome da maquina?  =  "
read nomemaquina
useradd -d /dev/null -s /dev/null -m $nomemaquina$
echo -n "      "
smbpasswd -am $nomemaquina$
sleep 1 &&
echo "      Maquina $nomemaquina Criada!"
}
removemaquinas () {
echo -n "      Nome da maquina p/ excluir?  =  "
read nomeexcluir
echo -n "      "
smbpasswd -x $nomeexcluir$
userdel $nomeexcluir$
sleep 1 &&
echo "      Maquina $nomeexcluir excluida!"
}
removeusers () {
echo -n "      Nome do Usuario p/ excluir?  =  "
read nomeexcluiru
echo "             Escolha:                Opcao:"  
echo "      Excluir Apenas do samba.         1"
echo "      Excluir do samba e do linux.     2"
echo -n "      Opcao desejada.  Enter = 2    =  "
read opppcheck
if [ -z $opppcheck ] ; then
   oppp=2
else
   oppp=$opppcheck
fi
if [ $oppp = 1 ] ; then
   echo -n "      "
        smbpasswd -x $nomeexcluiru
else
   echo -n "      "
        smbpasswd -x $nomeexcluiru
   userdel $nomeexcluiru
fi
}


addusers () {
echo -n "      Nome do usuario a adicionar.  =  "
read nomeadd
adduser $nomeadd
smbpasswd -a $nomeadd
}
clear
esamba
}

####### Aqui termina o script do samba   ########

###### Aqui comeca o script do pureftp  ######
epureftpmenu () {
menupure () {
clear
echo "       ###  Menu Principal Pureftp  ### "
echo 
echo "    1. Iniciar o servico."
echo "    2. Adicionar Usuarios."
echo "    3. Adicionar usuarios e grupos padroes."
echo "    4. Deletar Usuario."
echo "    5. Mudar senha de usuarios."
echo "    6. Informacoes sobre usuarios."
echo "    7. Consulta usuarios cadastrados."
echo "    8. Gerar rc.pureftpd"
echo "    9. Sair do Script."
echo "    10. Voltar ao menu programas"
echo
echo -n "      Escolha a opcao  =>  "
read eopssao 
case "$eopssao" in
    1 ) opssoesini ;;
    2 ) checkpdb ;;
    3 ) addpadroes ;;
    4 ) delusuarios ;;
    5 ) changesenha ;;
    6 ) showusuario ;;
    7 ) echo "Usuario: ## Path Home:" ; pure-pw list | more ;;
    8 ) geraini ;;
    9 ) clear && exit ;;
    10 ) clear && menuprogramas ;;
    * ) clear ; echo ; echo ; echo ; echo ; echo "          [ "$eopssao" ] opssao invalida! Entre com uma opcao valida!" ; sleep 3 && echo "" ; echo ""  && clear && menupure
esac
}
addpadroes () {
userdel ftpuser
groupdel ftpgroup
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser
echo "Digite a Senha do usuario= normal ,senha obrigató."
pure-pw useradd normal -u ftpuser -d /dev/null
echo "Usuario normal adicionado" && sleep 1 && echo "Grupo ftpgroup e Usuario ftpuser ja existentes!" && sleep 3 && menupure
}
opssoesini () {
echo "      Permitir loggin anonimo? "
echo -n "      Y/n  Enter = n             =  "
read logginanonimocheck
if [ -z "$logginanonimocheck" ] ; then
   logginanonimo="n"
else
   logginanonimo="$logginanonimocheck"
fi
if [ "$logginanonimo" = Y ] ; then
   anonimo=
   echo "       Permitindo login anonymous"
   sleep 1
else
   anonimo="--noanonymous"
   echo "      Proibindo login anonymous"
   sleep 1
fi
echo -n "      Limite maximo de usuarios conectados.  Enter = 15   =>  " 
read maxcheck
if [ -z "$maxcheck" ]; then
   maximousuarios=15
   echo "      Permitindo "$maximousuarios" usuario conectados simultaneamente"
        sleep 1
else
   maximousuarios="$maxcheck"
   echo "      Permitindo "$maxcheck" usuarios conectados simultaneamente"
   sleep 1
fi
pure-ftpd --daemonize 
killall pure-ftpd && pure-ftpd --daemonize "$anonimo" -c "$maximousuarios" -lpuredb:/etc/pureftpd.pdb
echo "      ServiçIniciado com sucesso!" && sleep 3 && menupure
}
addusuarios () {
echo -n "      Nome do usuario  =>  "
read nomeuser
echo -n "      Path da pasta base do usuario. Enter = /soft/ftp  =>  "
read pathhomecheck
if [ -z "$pathhomecheck" ] ; then
   pathhome="/soft/ftp"
   if [ ! -e "$pathhome" ] ; then
      mkdir -p "$pathhome"
      echo "      Pasta "$pathhome" nao existe, criando-a"
      sleep 1 && echo "      Home criado!"
      chmod 777 "$pathhome" -R
   else
      chmod 777 "$pathhome" -R
   fi
else
   pathhome="$pathhomecheck"
   if [ ! -e "$pathhomecheck" ] ; then
      mkdir -p "$pathhomecheck"
      echo "      Pasta "$pathhomecheck" nao existe, criando-a"
      sleep 1 && echo "      Home criado!"
      chmod 777 "$pathhomecheck" -R
        else
      chmod 777 "$pathhomecheck" -R
   fi
fi
echo -n "      Quota de espaco no HD? Enter = Ilimitado  =>  "
read quotambcheck
if [ -z "$quotambcheck" ] ; then
   quotamb=
else
   quotamb="-N $quotambcheck"
fi
pure-pw useradd $nomeuser -u ftpuser -d $pathhome $quotamb -m
pure-pw show $nomeuser
}
checkpdb () {
if [ -e /etc/pureftpd.pdb ] ; then
      addusuarios
else
     if [ -e /etc/pureftpd.passwd ] ; then
        echo "      Criando banco de dados de usuarios" && sleep 2 &&  pure-pw mkdb && echo "      Banco Criado!" && sleep 2 &&  addusuarios
     else
        echo "      Ã‰necessario criar usuario e grupos padroes"
        sleep 2
        echo "      No menu principal selecione a opcao 3" 
        sleep 3 && menupure
     fi
fi     
}
delusuarios () {
echo -n "      Nome do usuario a deletar?  =>  "
read morre
pure-pw userdel $morre -m
echo "      Usuario Deletado!"
sleep 2 
menupure
}
changesenha () {
echo -n "      Nome do usuario a mudar a senha.  =>  "
read trocasenha
pure-pw passwd $trocasenha -m
echo "        Senha trocada!"
menupure
}
showusuario () {
echo -n "      Nome do usuario?  =>  "
read nomeshow
pure-pw show $nomeshow
}
clear
menupure
}

function geraini {
echo "#!/bin/bash
#Permitir Login anonimo?  Y / N .  
logginanonimo=Y

#Numero maximo de usuario conectados simultaneamente.
maximousuarios=15

# Nao mexa daqui para baixo !
if [ \"$logginanonimo\" = Y ] ; then
   anonimo=\"\"
else
   anonimo=\"--noanonymous\"
fi
/usr/local/sbin/pure-ftpd --daemonize \"$anonimo\" -c \"$maximousuarios\" -lpuredb:/etc/pureftpd.pdb " > /etc/rc.d/rc.pureftpd
chmod 777 /etc/rc.d/rc.pureftpd
clear
echo "Arquivo gerado com exito em /etc/rc.d/rc.pureftpd" && sleep 2 && menupure
}

### Aqui termina o script do pureftp ###
menuprogramas   # chama o menu principal

Scripts recomendados

Dell 1390 WLAN (Broadcom 4311)

Alteração de Senha do Mysql (sem saber a senha anterior).

Migração de Aplicações para Ambiente Web - Uma Abordagem Prática

Administração servidor WEB com Dialog

Script Para Ajustar o Intevalo de Legendas


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário