Script para instalar e configurar o samba no Damn Small Linux
Publicado por Isaac Luiz Angelo Castro 13/05/2009
[ Hits: 6.391 ]
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
Adicionar agentes em uma ManageSystemList de ITM6
Baixar recursivamente links de um arquivo texto
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? (11)