Script para instalar e configurar o samba no Damn Small Linux
Publicado por Isaac Luiz Angelo Castro 13/05/2009
[ Hits: 6.393 ]
Homepage: http://bitcoinrotator.pe.hu/
Eu vi que existia uma grande possibilidade de usar o Damn Small Linux como distribuição base para um servidor com Samba. Aí, comecei a desenvolver o script.
Estou muito no início mas a ideia é boa. Fiquei interessado pelo DSL-N que tem kernel 2.6.X e tem algumas diferenças do 2.4.X, mas a versão do samba funciona bem nas duas. Se alguém quiser participar do desenvolvimento, mande um email para isaacangello@gmail.com.
#!/bin/bash # # esse script # sversion="versao 0.8.85" # # Desativando no boot # update-rc.d -f samba remove # Ativando no boot # update-rc.d -f samba defaults # ativação do samba manual # /etc/.d/samba start # parando samba para configurar # /etc/.d/samba stop #comando para filtrar usuarios no sistema # sed -e '\/*/D' /etc/shadow | sed -e '\/!/D'| cut -d : -f1 | grep usuario #definindo variáveis BACKTITLE="SMB SETUP SERVER , POR ISAAC ANGELO =<ISC>= SCRIPT DE CONFIGURACAO DO SAMBA " T1=" SMB SETUP SERVER " arqconf="/tmp/smb.conf" ordir=`pwd` chmod 666 /etc/samba/smb.conf which /usr/sbin/nmbd |cut -d/ -f4-42>/tmp/var0101.txtsmb which /usr/sbin/smbd |cut -d/ -f4-42>/tmp/var0102.txtsmb var0101=`cut -f1 /tmp/var0101.txtsmb` var0102=`cut -f1 /tmp/var0102.txtsmb` #instalando temas no dialog # embelezando user100=`whoami` if [ $user100 = "root" ] then HOME=/root else HOME=/home/$user100 fi export DIALOGRC=$HOME/.dialog/default_theme_rc.cfg #função para sair do script caso o usuário queira run-time() { M1="ESTE E UM SCRIPT DE CONFIGURACAO DO SAMBA ! DESEJA CONTINUAR ?, ESCOLHA NAO PARA SAIR..." dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 70 if [ $? = 1 ];then clear rm -f $arqconf rm -f /tmp/*smb /usr/sbin/nmbd /usr/sbin/smbd /usr/sbin/winbindd samba start clear exit 0 fi } #loop para voltar ao inicio loop() { M1="DESEJA SAIR DO SCRIPT? DIGITE NAO PARA VOLTAR AO INICIO... " dialog --backtitle" $BACKTITLE" --title "$T1 " --yesno "M1" 10 70 if [ $? = 0 ]; then exit 0 rm -f $arqconf rm -f /tmp/*smb /usr/sbin/nmbd /usr/sbin/smbd /usr/sbin/winbindd samba start else run-time fi } # iniciando a configuração init-conf(){ M1="$sversion |\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/| |/\.....ESTE SCRIPT FOI ESCRITO POR ISAAC ANGELO...../\| |\/__________________________________________________\/| |/\...ELE TE AJUDARA A CONFIGURAR O SERVIDOR SAMBA.../\| |\/.........ESCOLHA UM ITEM NA DA PROXIMA TELA.......\/| |/\__________________________________________________/\| |\/.........RESPONDA CANCELAR SE QUISER SAIR.........\/| |/\................................................../\| |\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/| " #pergunta que define se oservidor é ou nào padrão dialog --backtitle "$BACKTITLE" --title "$T1" --msgbox "$M1" 20 70 M1="ESCOLHA UMA DAS OPCOES ABAIXO :\n \n <> BASICA = E AUTOMATICA \n <> PERSONALIZADA = POSSIVEL ADIONAR COMPARTILHAMENTO PERSONALIZADOS \n \n " rm -f /tmp/test1.txtsmb dialog \ --backtitle "$BACKTITLE" \ --title "$T1" \ --menu "$M1" \ 18 70 3 \ BASICA "CONFIGURACAO_BASICA" \ PERSONALIZADA 'CONFIGURACAO_PERSONALIZADA' \ SAIR 'SAIR' 2>/tmp/test1.txtsmb test1=`head -n 1 /tmp/test1.txtsmb | cut -f1` case $test1 in BASICA) clear # parando samba para configurar samba stop killall nmbd killall smbd killall winbindd smb-padrao ;; PERSONALIZADA) clear # parando samba para configurar samba stop killall nmbd killall smbd killall winbindd smb-server ;; *) run-time ;; esac } smb-padrao(){ ordir=`pwd` cd /etc/samba gzip -c smb.conf > smb.conf-$$-.back.gz & cd $ordir #sudo rm -f /etc/samba/smb.conf rm -f $arqconf #read barbom NomeComp="Servidor" PastaComp="/mnt/servidor" NomeComp1="Arquivos" PastaComp1="/mnt/arquivos" sudo cat <<isc> $arqconf # Arquivo de Configuração do Samba # baseado no arquivo de configuração do kurumin . # gerado por SMB SETUP SERVER $sversion # Seção Globals: # Aqui vão parâmetros gerais, como o nome da máquina e grupo de trabalho. [global] workgroup = HOME netbios name = SERVIDOR server string = %h server (Samba %v) encrypt passwords = Yes security = user os level = 100 log file = /var/log/samba/log.%m preferred master = yes domain master = no local master = yes socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 [homes] comment = Home Directories create mask = 0700 directory mask = 0700 browseable = No [printers] comment = Todas as Impressoras path = /var/spool/samba guest ok = yes public = yes printable = yes browseable = yes use client driver = yes isc cd /tmp NomeComp="Servidor" PastaComp="/mnt/servidor" NomeComp1="Arquivos" PastaComp1="/mnt/arquivos" echo "# Adicionando pasta compartilhada...">> $arqconf echo "">> $arqconf echo "[$NomeComp]">> $arqconf echo "">> $arqconf echo " path = $PastaComp ">> $arqconf echo "browseable = yes ">> $arqconf echo "writeble = yes">> $arqconf echo "read only = no ">> $arqconf echo " directory mask = 0770">> $arqconf echo " create mask = 0770">> $arqconf echo " force create mode = 0770">> $arqconf echo " force directory mode = 0770">> $arqconf echo "">> $arqconf echo "# Adicionando pasta compartilhada...">> $arqconf echo "">> $arqconf echo "[$NomeComp1]">> $arqconf echo "">> $arqconf echo " path = $PastaComp ">> $arqconf echo "browseable = yes ">> $arqconf echo "writeble = yes">> $arqconf echo "read only = no ">> $arqconf echo " directory mask = 0770">> $arqconf echo " create mask = 0770">> $arqconf echo " force create mode = 0770">> $arqconf echo " force directory mode = 0770">> $arqconf echo "">> $arqconf mkdir $PastaComp mkdir $PastaComp1 sudo chmod 666 /etc/samba/smb.conf sudo rm -f /etc/samba/smb.conf sudo tar -cf - smb.conf | tar -xf - -C /etc/samba #cp -a --reply=yes smb.conf /etc/samba/ cd $ordir clear (echo 33 ; sleep 1 echo 44 ; sleep 1 echo 66 ; sleep 1 echo 100) | dialog --backtitle "$BACKTITLE" \ --title " $T1 " \ --gauge 'CRIANDO CONFIGURACAO BASICA, AGUARDE...' \ 8 70 0 #M1=" O SCRIPT TERMINOU A CONFIGURAÇÃO PADRÃO, DESEJA INICIAR O SAMBA AGORA. " #dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 50 #if [ $? = 0 ] ; then # ativação do samba manual #/etc/init.d/samba start #fi add-nome } # função para escrita do arquivo de configuração do samba sem pdc smb-server() { sudo cat<<isc> $arqconf # Arquivo de Configuração do Samba # baseado no arquivo de configuração do kurumin . # gerado por SMB SETUP SERVER $sversion # Seção Globals: # Aqui vão parâmetros gerais, como o nome da máquina e grupo de trabalho. [global] workgroup = HOME netbios name = SERVIDOR server string = %h server (Samba %v) encrypt passwords = Yes security = user os level = 100 log file = /var/log/samba/log.%m preferred master = yes domain master = no local master = yes socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 [printers] comment = Todas as Impressoras path = /var/spool/samba guest ok = yes public = yes printable = yes browseable = yes use client driver = yes isc #ff escavusca #sudo chmod 666 /etc/samba/smb.conf #sudo rm -f /etc/samba/smb.conf #sudo tar -cf - smb.conf | tar -xf - -C /etc/samba #cd $ordir init-comp } #função que possibilita o usuario escolher se que configurar o compartilhamento manualmento ou pelo script init-comp(){ clear echo "PARANDO SERVICO DO SAMBA " dialog --backtitle "$BACKTITLE" --title " $T1 " --infobox " PARANDO SERVICO DO SAMBA ! " 10 70 samba stop killall nmbd killall smbd killall winbindd clear (echo 31 ; sleep 1 echo 44 ; sleep 1 echo 68 ; sleep 1 echo 100; sleep 1) | dialog --backtitle "$BACKTITLE" \ --title " $T1 " \ --gauge 'PREPARANDO CONFIGURACAO, AGUARDE...' \ 8 70 0 M1=" ===================================================== ||.........ADICIONANDO COMPARTILHAMENTO............|| ||=================================================|| ||.......A CONFIGURACAO BASICA FOI FEITA...........|| || PASSEMOS A CONFIGURACAO DOS COMPARTILHAMENTOS .|| ||=================================================|| ||............RESPONDA NAO SE QUISER...............|| ||............FAZER ISSO MANUALMENTE...............|| ===================================================== " #pergunta que define se oservidor é ou nào padrão dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 20 70 while [ $? = 0 ] ; do dados compadd M1=" DESEJA CRIAR OUTRO COMPARTILHAMENTO ? " dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 70 done if [ $? = 1 ]; then ordir=`pwd` cd /tmp sudo chmod 666 /etc/samba/smb.conf sudo rm -f /etc/samba/smb.conf sudo tar -cf - smb.conf | tar -xf - -C /etc/samba #cp -a --reply=yes smb.conf /etc/samba/ cd $ordir add-nome fi } # função para escrita no arquivo de configuração do samba : criando compartilhamento compadd() { chmod 666 /etc/samba/smb.conf cd /tmp/ echo "# pasta(s) compartilhada(s)...">> $arqconf echo "">> $arqconf echo "[$NomeComp]">> $arqconf echo " path = $PastaComp ">> $arqconf echo "avaliable = $R1">> $arqconf echo "browseable = $R2 ">> $arqconf echo "writeble = $R3">> $arqconf echo "">> $arqconf #echo "=====debug" #read isc clear (echo 38 ; sleep 1 echo 45 ; sleep 1 echo 71 ; sleep 1 echo 100) | dialog --backtitle "$BACKTITLE" \ --title " $T1 " \ --gauge 'ADICIONANDO COMPARTILHAMENTO(S), AGUARDE...' \ 8 70 0 } # funções para determinar opções configuraveis do arquivo dados(){ rm -f /tmp/nome.txtsmb rm -f /tmp/pasta.txtsmb dialog --backtitle "$BACKTITLE" --title " $T1 " --inputbox " INSIRA: UM NOME PARA O COMPARTILHAMENTO... " 10 70 2>/tmp/nome.txtsmb if [ $? = 1 ] ;then run-time fi dialog --backtitle "$BACKTITLE" --title " $T1 " --inputbox " INSIRA: UMA PASTA PARA O COMPARTILHAMENTO... " 10 70 2>/tmp/pasta.txtsmb if [ $? = 1 ];then run-time fi NomeComp=`cat /tmp/nome.txtsmb| cut -f1` PastaComp=`cat /tmp/pasta.txtsmb| cut -f1` M1="DESEJA CRIAR A PASTA DO COMPARTILHAMENTO? " dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 70 if [ $? = 0 ] ;then rm -f /tmp/pasta.logsmb mkdir $PastaComp 2>/tmp/pasta.logsmb & clear (echo 33 ; sleep 1 echo 44 ; sleep 1 echo 66 ; sleep 1 echo 100) | dialog --backtitle "$BACKTITLE" \ --title " $T1 " \ --gauge 'CRIANDO DIRETORIO, AGUARDE...' \ 8 70 0 verificar=`cat /tmp/pasta.logsmb |cut -d ":" -f3-3 | cut -d " " -f 3-3` if [ $verificar = "existe" ]; then M1=" A PASTA JA EXISTE! <<<<>>>> VERIFIQUE SE A PASTA NAO ESTA SENDO USADA POR OUTRO COMPARTILHAMENTO.! " dialog --backtitle "$BACKTITLE" --title "$T1" --msgbox "$M1" 10 70 fi fi M1=" AVALIABLE <<<<>>>> GERALMENTE SEM ESSA OPCAO ABILITADA O SAMBA NAO FUNCIONA, DIGITA SIM(RECOMENDADO) ... " dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 70 if [ $? = 0 ]; then R1=`echo "yes"` else R1=`echo "no"` fi M1="DESEJA QUE ESTE COMPARTILHAMENTO SEJA NAVEGAVEL ? " dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 70 if [ $? = 0 ]; then R2=`echo "yes"` else R2=`echo "no"` fi M1=" DESEJA ABILITAR ESCRITA PARA ESTE COMPARTILHAMENTO ?" dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 70 if [ $? = 0 ]; then R3=`echo "yes"` else R3=`echo "no"` fi } # verificando se o usuario realmente quer adicionar usuarios no sistema e no samba add-nome(){ M1=" ______________________________________________ <>......ADICIONANDO USUARIOS NO SAMBA.......<> <><><><><><><><><><><><><><><><><><><><><><><> <>....PARA ADICIONAR USUARIOS NO SAMBA......<> <> E NECESSARIO QUE OS USUARIOS ESTEJAM.....<> <>..........CADASTRADOS NO SISTEMA..........<> <><><><><><><><><><><><><><><><><><><><><><><> <>..........RESPONDA NAO SE QUISER..........<> <>..........FAZER ISSO MANUALMENTE..........<> ---------------------------------------------- " #pergunta que define se oservidor é ou nào padrão dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 20 70 if [ $? = 1 ]; then loop fi add-nome-system } # adicionando usuários no sistema add-nome-system(){ rm -f /tmp/nome.txtsmb dialog --backtitle "$BACKTITLE" --title " $T1 " --inputbox " INSIRA: UM NOME PARA ADICIONAR USUARIO.NO SISTEMA. " 10 70 2>/tmp/nome.txtsmb if [ $? = 1 ] ; then add-nome fi dialog --backtitle "$BACKTITLE" --title " $T1 " --passwordbox " INSIRA : UMA SENHA PARA O NOVO USUARIO.NO SISTEMA. " 10 70 2>/tmp/senha.txtsmb if [ $? = 1 ] ; then add-nome-system fi dialog --backtitle "$BACKTITLE" --title " $T1 " --passwordbox " INSIRA NOVAMENTE : UMA SENHA PARA O NOVO USUARIO.NO SISTEMA. " 10 70 2>/tmp/senha1.txtsmb if [ $? = 1 ] ; then add-nome-system fi user1=`cat /tmp/nome.txtsmb| cut -f1` usersenha=`cat /tmp/senha.txtsmb| cut -f1` usersenha1=`cat /tmp/senha1.txtsmb| cut -f1` if [ "$usersenha" != "$usersenha1" ] ; then dialog --backtitle "$BACKTITLE" --title " $T1 " --msgbox " AS SENHAS DIGITADAS NAO SAO IGUAIS : INSIRA NOVAMENTE " 10 70 add-nome-system fi userdel $user1 useradd $user1 -p $usersenha #passwd $user1<< isc #$usersenha #$usersenha isc dialog --backtitle "$BACKTITLE" --title " $T1 " --msgbox " O USUARIO ==>> $user1 <<== FOI ADICIONADO NO <<SISTEMA>> " 10 70 add-nome-samba } #adicionando usuários no samba add-nome-samba (){ rm -f /tmp/nome1.txtsmb dialog --backtitle "$BACKTITLE" --title " $T1 " --inputbox " INSIRA: UM NOME PARA ADICIONAR USUARIO.NO >>SAMBA<<. " 10 70 2>/tmp/nome1.txtsmb if [ $? = 1 ] ; then add-nome fi dialog --backtitle "$BACKTITLE" --title " $T1 " --passwordbox " INSIRA : UMA SENHA PARA O NOVO USUARIO.NO <>SAMBA<>. " 10 70 2>/tmp/senha0.txtsmb if [ $? = 1 ] ; then add-nome-samba fi dialog --backtitle "$BACKTITLE" --title " $T1 " --passwordbox " INSIRA NOVAMENTE : UMA SENHA PARA O NOVO USUARIO.NO SAMBA. " 10 70 2>/tmp/senha01.txtsmb if [ $? = 1 ] ; then add-nome-samba fi user01=`cat /tmp/nome1.txtsmb| cut -f1` usersenha0=`cat /tmp/senha0.txtsmb| cut -f1` usersenha01=`cat /tmp/senha01.txtsmb| cut -f1` if [ "$usersenha0" != "$usersenha01" ] ; then dialog --backtitle "$BACKTITLE" --title " $T1 " --msgbox " AS SENHAS DIGITADAS NAO SAO IGUAIS : INSIRA NOVAMENTE " 10 70 add-nome-samba fi smbpasswd -a -s $user01<< isc $usersenha0 $usersenha0 isc dialog --backtitle "$BACKTITLE" --title " $T1 " --msgbox " O USUARIO ==>> $user01 <<== FOI ADICIONADO NO SAMBA " 10 70 add-nome } #funcao para testar se os modulos do samba estão instalados caso nao esta ele instala. testando(){ MSG="COMO DESEJA INSTALAR O SAMBA ?" rm -f /tmp/dia.log01smb dialog --backtitle "$BACKTITLE" --menu "$MSG" 10 70 3 1 FAZER_DOWNLOAD_DO_SAMBA 2 INSTALAR_DA_PASTA 3 CONTINUAR_SETUP-SMBSERVER 2>/tmp/dia.log01smb test=`cut -f1 /tmp/dia.log01smb` case $test in 1) M1=" ESSE PARTE SCRIPT BAIXA E INSTALAR O SAMBA VERAO 2.2.9 NO DSL-N, DESEJA CONTINUAR ?" ordir=`pwd` dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 70 if [ $? = 1 ] ; then exit 0 fi cd /tmp/ rm -f samba.dsl* rm -f wget.log clear echo " <===FAZENDO DOWNLOAD DO SAMBA===>" echo"" #wget -c -o /tmp/wget.log http://linorg.usp.br/www.broffice.org/stable/3.0.1/BrOo_3.0.1_LinuxIntel_install_pt-BR.tar.gz -b wget -o /tmp/wget.logsmb ftp://ibiblio.org/pub/Linux/distributions/damnsmall/mydsl/net/samba.dsl -b M1=" <===FAZENDO DOWNLOAD DO SAMBA===> " porcentagem=1 (sleep 5 while [ "$porcentagem" != "00" ]; do porcentagem=`cat /tmp/wget.logsmb |cut -c63-64|tail -n 4 | head -n 1 ` echo $porcentagem done echo 100 )| dialog --title "$TI" --gauge "$M1" 10 70 0 mv /tmp/samba.dsl /tmp/samba.tar.gz tar -xzf samba.tar.gz -C / rm -f /tmp/samba.tar.gz M1=" ===>INSTALANDO SAMBA V.2.2.9<=== " cd $ordir (echo 20 sleep 1 echo 45 echo 56 sleep 2 echo 67 echo 78 sleep 1 echo 86 sleep 1 echo 98 sleep 1 echo 100 )| dialog --title "$TI" --gauge "$M1" 10 70 2 M1=" :-) = :-) = :-) = :-) = :-) = :-) = :-) A INSTALACAO OCORREU COM SUCESSO ! " dialog --backtitle "$BACKTITLE" --title "$T1" --msgbox "$M1" 10 70 init-conf ;; 2) ordir=`pwd` M1="APONTE A PASTA AONDE ESTA O ARQUIVO <<>>.dsl<<>>" rm -f /tmp/arq00.txtsmb dialog --backtitle "$BACKTITLE" --title "$M1" --inputbox $ordir/ 10 70 2>/tmp/arq00.txtsmb arq00=`cut -f1 /tmp/arq00.txtsmb` arq01=`echo $arq00/samba.dsl` DIA=`dialog` rm -f /tmp/tarlog #tar -xzf $arq01 -C / 2>/tmp/tarlog #rm -f /tmp/samba.tar.gz M1=" ===>INSTALANDO SAMBA V.2.2.9<=== " cd $ordir (echo 20 sleep 1 echo 45 echo 56 sleep 2 echo 67 echo 78 sleep 1 echo 86 sleep 1 echo 98 sleep 1 echo 100 )| dialog --title "$TI" --gauge "$M1" 10 70 2 verif=`cut -f3 -d : /tmp/tarlogsmb | head -n 1 | cut -c2-7` if [ ¨$verif¨ = ¨Cannot¨ ]; then M1=" = :-( = :-( = :-( = :-( = :-( = :-( = :-( OUVE UM ERRO NA INSTALACAO DO SAMBA ! " dialog --backtitle "$BACKTITLE" --title "$T1" --msgbox "$M1" 10 70 testando fi M1=" :-) = :-) = :-) = :-) = :-) = :-) = :-) A INSTALACAO OCORREU COM SUCESSO ! " dialog --backtitle "$BACKTITLE" --title "$T1" --msgbox "$M1" 10 70 ;;3) init-conf ;; *) exit ;; esac } run-time which /usr/sbin/nmbd |cut -d/ -f4-42>/tmp/var0101.txtsmb which /usr/sbin/smbd |cut -d/ -f4-42>/tmp/var0102.txtsmb var0101=`cut -f1 /tmp/var0101.txtsmb` var0102=`cut -f1 /tmp/var0102.txtsmb` if [ "$var0101" = "nmbd" ]; then init-conf else M1=" O SCRIPT DETECTOU QUE O SAMBA NAO ESTA INSTALADO <<>> ESCOLHA UMA OPCAO NA PROXIMA JANELA... " dialog --backtitle "$BACKTITLE" --title "$T1" --msgbox "$M1" 10 70 testando fi if [ "$var0102" = "smbd" ]; then init-conf else M1=" O SCRIPT DETECTOU QUE O SAMBA NAO ESTA INSTALADO <<>> ESCOLHA UMA OPCAO NA PROXIMA JANELA..." dialog --backtitle "$BACKTITLE" --title "$T1" --msgbox "$M1" 10 70 testando fi init-conf
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)