samba (sambax)

sambax

Categoria: Samba

Software: samba

[ Hits: 13.115 ]

Por: Eduardo Assis


Um Front-end para facilitar na configuração do samba (smb.conf).
Ele roda em Xdialog, bastando tê-lo instalado junto com o samba
para poder funcionar.



Ele foi desenvolvido no CL9 com o padrão LSB, no qual o samba fica
em /etc/samba/smb.conf. Se você utilizar outra distro na qual o samba
esteja em outro caminho, vocÊ precisará mudar o caminho no
código do script.


#!/bin/bash
clear
DIALOG=`which Xdialog`
procura_samba=`which samba`
if [ ! $DIALOG ]
then
   echo " Xdialog nao encontrado"
   exit 1
fi
if [ ! $procura_samba ]
then
   echo " Samba nao encontrado"
   exit 1
fi

MENU=`$DIALOG --stdout --center --fixed-font --keep-colors --no-cancel --ignore-eof --smooth --help " Qualquer duvidas favor entrar em contato\n\nEduardo Assis\n\neduardodoctor@bol.com.br" --title " SAMBAX " --menu " Front-end para configuração do Samba\nEscolha uma das Opções abaixo: " 18 45 10 SOBRE "ESTE PROGRAMA" DEFINIR "GRUPO DE TRABALHO" COMPARTILHAR DIRETÓRIO REMOVER COMPARTILHAMENTO INICIAR SAMBA PARAR SAMBA FIM "SAIR DO MENU"`
case $MENU in
   SOBRE)

      `$DIALOG --stdout --center --fixed-font --keep-colors --no-cancel --ignore-eof --smooth --title " SAMBAX " --msgbox " Script Feito por Eduardo Assis\nemail: eduardodoctor@bol.com.br\n\nEsse Script tem por objetivo facilitar \na nossa vida de Administrador de Redes Linux\nEle irá te ajudar a configurar um samba\nfacilmente, bastando definir o grupo de trabalho\ne criar um compartilhamento\nEle trabalha com permissões de root\n quando for roda-lo use-o como root\n\nLembrando que este script funciona\njunto com o padrão LSB, onde o samba fica\n em /etc/samba e o smb.conf dentro\nNão valendo para Distro fora do padrão LSB\n\nLembrando que foi testado na Distro\nConectica Linux 9\nversão do samba ( samba-2.2.8-27519cl )\nmas vai depender da versão do Samba de\nsua Distro Linux favorita\n\nQualquer duvidas ou sugestões mesmo que \nem forma de elogio ou critica eu agradeço\n\nAbraços\ntucs " 35 45`
   ;;
   DEFINIR)
      while [ ! $grupo ]
      do
         grupo=`$DIALOG --stdout --center --fixed-font --keep-colors --no-cancel --ignore-eof --smooth --title " SAMBAX " --inputbox " Favor digitar o nome do Grupo de Trabalho: " 10 45`
      done
         sed '18c\ workgroup = '$grupo'' /etc/samba/smb.conf > /etc/samba/smb.out
         mv /etc/samba/smb.out /etc/samba/smb.conf
         sed '56c\ security = share' /etc/samba/smb.conf > /etc/samba/smb.out
         mv /etc/samba/smb.out /etc/samba/smb.conf
         sed '172a\unix password sync = yes' /etc/samba/smb.conf > /etc/samba/smb.out
         mv /etc/samba/smb.out /etc/samba/smb.conf
         sed '173a\map to guest = never' /etc/samba/smb.conf > /etc/samba/smb.out
         mv /etc/samba/smb.out /etc/samba/smb.conf
         sed '174a\password level = 0' /etc/samba/smb.conf > /etc/samba/smb.out
         mv /etc/samba/smb.out /etc/samba/smb.conf
         sed '175a\null passwords = yes' /etc/samba/smb.conf > /etc/samba/smb.out
         mv /etc/samba/smb.out /etc/samba/smb.conf
         sed '176a\os level = 0' /etc/samba/smb.conf > /etc/samba/smb.out
         mv /etc/samba/smb.out /etc/samba/smb.conf
         sed '177a\preferred master = no' /etc/samba/smb.conf > /etc/samba/smb.out
         mv /etc/samba/smb.out /etc/samba/smb.conf
         sed '178a\domain master = no' /etc/samba/smb.conf > /etc/samba/smb.out
         mv /etc/samba/smb.out /etc/samba/smb.conf
         sed '179a\wins support = no' /etc/samba/smb.conf > /etc/samba/smb.out
         mv /etc/samba/smb.out /etc/samba/smb.conf
         sed '180a\dead time = 0' /etc/samba/smb.conf > /etc/samba/smb.out
         mv /etc/samba/smb.out /etc/samba/smb.conf

         `$DIALOG --stdout --center --fixed-font --keep-colors --no-cancel --ignore-eof --smooth --title " SAMBAX " --msgbox " Grupo ( $grupo ) definido com sucesso !!!  " 10 45`
      ;;

        COMPARTILHAR)
      while [ ! $nome_comp ]
      do
         nome_comp=`$DIALOG --stdout --center --fixed-font --keep-colors --no-cancel --ignore-eof --smooth --title " SAMBAX " --inputbox " Favor Digitar o Nome do Compartilhamento:\nEx: sambax " 10 45`
      done
      while [ ! $caminho_comp ]
      do
         caminho_comp=`$DIALOG --stdout --center --fixed-font --keep-colors --no-cancel --ignore-eof --smooth --title " SAMBAX " --inputbox " Favor Digitar o Caminho do Compartilhamento:\nEx: /home/$nome_comp " 10 45`
      done
         if [ ! -s $caminho_comp ]
            then
            if `$DIALOG --title " SAMBAX " --default-no --yesno " O caminho ( $caminho_comp ) que você digito não existe\nDeseja criar agora ? " 10 70`
            then
            mkdir $caminho_comp
            chown nobody.nobody $caminho_comp
            chmod 777 $caminho_comp
            fi
         fi
         echo [$nome_comp] >> /etc/samba/smb.conf   
         echo available = yes >> /etc/samba/smb.conf
            echo browseable = yes >> /etc/samba/smb.conf
             echo path = $caminho_comp >> /etc/samba/smb.conf
             echo public = yes >> /etc/samba/smb.conf
             echo guest only = yes >> /etc/samba/smb.conf
             echo writable = yes >> /etc/samba/smb.conf
             echo only user = no >> /etc/samba/smb.conf
         
         `$DIALOG --stdout --center --fixed-font --keep-colors --no-cancel --ignore-eof --smooth --title " SAMBAX " --msgbox " Configuração concluida com sucesso !!!\nNome do Compartilhamento:     $nome_comp\nCaminho do Compartilhamento:  $caminho_comp " 10 45`
      ;;
   REMOVER)
      while [ ! $remover ]
      do
         remover=`$DIALOG --stdout --center --fixed-font --keep-colors --no-cancel --ignore-eof --smooth --title " SAMBAX " --inputbox " Favor Digitar o Nome do Compartilhamento para Remover:\nEx: sambax\nFaz Diferença se você criou o compartilhamento\ncom NOME MAIUSCULO " 10 50`         
         
         if `$DIALOG --title " SAMBAX " --default-no --yesno " Tem certeza que deseja apagar o compartilhamento ( $remover ) do Sistema ? " 10 70`
         then         
            sed '/'$remover'/d' /etc/samba/smb.conf > /etc/samba/smb.out
            mv /etc/samba/smb.out /etc/samba/smb.conf
         fi
      done
      ;;
   INICIAR)
         if `$DIALOG --title " SAMBAX " --yesno " Deseja que o Samba seja iniciado junto com o Sistema? " 10 50`
         then
            service smb start
            echo service smb start >> /etc/rc.d/rc.local
            `$DIALOG --stdout --center --fixed-font --keep-colors --no-cancel --smooth --title " SAMBAX " --msgbox " Serviço Iniciado com Sucesso !!! " 10 45`
         else
            service smb start
            `$DIALOG --stdout --center --fixed-font --keep-colors --no-cancel --smooth --title " SAMBAX " --msgbox " Serviço Iniciado com Sucesso !!! " 10 45`
         fi
         
      ;;
   PARAR)
      service smb stop
      `$DIALOG --stdout --center --fixed-font --keep-colors --no-cancel --ignore-eof --smooth --title " SAMBAX " --msgbox " Comando concluido com Sucesso !!! " 10 45`   

      ;;
   FIM)
      clear
      exit
      ;;
esac
clear
sh $0
  


Comentários
[1] Comentário enviado por k2 em 20/07/2003 - 12:50h

Acredito para quem deseja soluções rápidas e com interface gráfica via Shell Script, o Xdialog é a ferramenta ideal.

Viva o Linux, Viva a Comunidade Open Source!!!

[2] Comentário enviado por kampz em 04/10/2004 - 17:49h

eu não consegui compilar, alguem pode me ajudar??? No entanto o smb.conf que baixei do site me deu um horizonte para ativar meu servidor linux.

Grato

[3] Comentário enviado por edgar.frastrone em 24/05/2006 - 17:25h

Amigo gostaria de saber como adicionar um .conf, tenho um exemplo muito bom, porem não consigo adicionar


Contribuir com comentário