Zsmb - Script para configurar o Samba

Publicado por Fernando T. Da Silva (última atualização em 22/10/2018)

[ Hits: 5.186 ]

Homepage: http://meumundotux.blogspot.com.br/

Download zsmb-v2-menu-ajuda.tgz

Download zsmb-v4-menu-ajuda.tgz (versão 2)

Download zsmb-v5-ubuntu1604-menu-ajuda.tgz (versão 3)




Simples script em Zenity com ajuda para configurar um novo arquivo smb.conf básico para compartilhar impressoras e pastas do seu computador, permitindo fazer alterações ou não no seu compartilhamento.

Este script foi criado para utilizar em window managers mais simples que não possuem uma ferramenta compartilhar uma pasta do seu computador.

Este script não trabalha com opções complexas no compartilhamento ou na seção global, devendo o usuário ter conhecimento para isto, caso deseje algo a mais que vá além do simples compartilhamento de pasta.

Pontos  que podem ser necessários a modificar:

Você deverá alterar no script o nome e o caminho do seu serviço que reinicia os serviços smbd e nmbd que varia conforme a distro, o editor usado para editar o arquivo smb.conf, ter o terminal xterm instalado ou trocar por outro de sua preferência, usar o gksu no lugar do terminal com sudo no arquivo zsmb.desktop.

Notas:

Este script utiliza uma janela de terminal para usar o sudo e para acompanhar o reinicio dos serviços do samba.

Usa o Firefox para ver a ajuda, e cria um atalho no grupo Internet do menu de programa, caso seu gerenciador de janelas, utilizem os arquivos .desktop para os atalhos do menu.

Para instalar:

# tar -xzvf  zsmb-v2-menu-ajuda.tgz -C /

Estrutura dos arquivos do pacote:

drwxr-xr-x root/root 2015-01-25 20:13 usr/
drwxr-xr-x root/root 2015-01-25 20:19 usr/share/
drwxr-xr-x root/root 2015-01-25 14:49 usr/share/doc/
drwxr-xr-x root/root 2015-01-25 19:52 usr/share/doc/zsmb/
-rw-r--r-- root/root 2015-01-25 19:44 usr/share/doc/zsmb/zsmb-ajuda.html
drwxr-xr-x root/root 2015-01-25 20:01 usr/share/applications/
-rw-r--r-- root/root 2015-02-23 21:05 usr/share/applications/zsmb.desktop
drwxr-xr-x root/root 2015-01-25 20:19 usr/share/icons/
-rw-r--r-- root/root 2015-01-25 20:19 usr/share/icons/network_36x36.png
drwxr-xr-x root/root 2015-01-25 14:49 usr/local/
drwxr-xr-x root/root 2015-01-25 19:59 usr/local/bin/
-rwxr-xr-x root/root 2015-01-25 19:50 usr/local/bin/zsmb

  



Versões atualizadas deste script

Versão 2 - Enviado por Fernando T. Da Silva em 23/08/2015

Changelog:
- Adição na linha "map to guest = bad user" como padrão na seção global.
- Dicas de montagem direta com gvfs-mount e problemas que tive com compartilhamento home em distro rodando Samba 4.1.x e as soluções pra contornar este e outros problemas na parte da ajuda.

Download zsmb-v4-menu-ajuda.tgz


Versão 3 - Enviado por Fernando T. Da Silva em 06/10/2018

Changelog: Adicionado item para excluir usuário do samba
Adicionado item para listar usuário no samba
Adicionado item para criar compartilhamento privativo
Trocado o comando responsável para iniciar/parar/reiniciar o servidor samba, altere conforme o que é
usado na sua distro editando o script.
Pequenas modificações nas opções utilizadas no smb.conf

Adicionado mais informações de uso do samba com explicações sobre o tipo de compartilhamento na ajuda
Alterado no script o nome do editor mousepad para leafpad
Modificações feita em outubro de 2018.

Download zsmb-v5-ubuntu1604-menu-ajuda.tgz


Esconder código-fonte

while true; do
  choice="$(zenity --width=400 --height=380 --list --column "Executar" --title="Zsmb Configure" \
  "Configurar um novo smb.conf simplificado" \
  "Adicionar compartilhamento" \
  "Editar o arquivo smb.conf" \
  "Adicionar usuario ao Samba" \
  "Reiniciar servidor Samba" \
  "Ajuda" \
  "Sair")"

  case "${choice}" in

"Configurar um novo smb.conf simplificado" )
zenity --question --title "Zsmb Configure" --text "Seu arquivo /etc/samba/smb.conf atual será excluído, 
faça uma copia de \nbackup manualmente antes ser for necessário, cancelando agora. \n\nDeseja prosseguir adiante?"
  if [ $? = 1 ];
   then zenity --error --title "Zsmb Configure" --text "Configuração cancelada" & exit
  fi
rm /etc/samba/smb.conf
echo [global] >> /etc/samba/smb.conf
echo server string = Servidor Zsmb >> /etc/samba/smb.conf
grupo=$(zenity --title="Zsmb" --entry --text="Digite o nome do grupo de trabalho ")
echo workgroup = "$grupo" >> /etc/samba/smb.conf
hostname=$(zenity --title="Zsmb" --entry --text="Digite o nome do seu computador (hostname) ")
echo netbios name = "$hostname" >> /etc/samba/smb.conf
echo local master = no >> /etc/samba/smb.conf
echo os level = 33 >> /etc/samba/smb.conf
echo preferred master = no >> /etc/samba/smb.conf
echo wins support = yes >> /etc/samba/smb.conf
modo=$(zenity --title="Zsmb" --entry --text="Digite o mode de compartilhamento, exemplo share (livre) ou user (senha) ")
echo security = "$modo" >> /etc/samba/smb.conf
echo printing = cups >> /etc/samba/smb.conf
echo load printers = yes >> /etc/samba/smb.conf
echo >> /etc/samba/smb.conf
echo >> /etc/samba/smb.conf
echo [printers] >> /etc/samba/smb.conf
echo comment = Todas as Impressoras >> /etc/samba/smb.conf
echo path = /var/spool/samba >> /etc/samba/smb.conf
echo print ok = yes >> /etc/samba/smb.conf
echo guest ok = yes >> /etc/samba/smb.conf
echo browseable = yes >> /etc/samba/smb.conf
echo >> /etc/samba/smb.conf

;;

"Adicionar compartilhamento" )
echo >> /etc/samba/smb.conf
echo >> /etc/samba/smb.conf
zenity --width=800 --height=220 --info --text "Nunca compartilhe pastas essencias do sistema como /, /usr, /etc ... Crie uma pasta especifica abaixo de /mnt como /mnt/partilha ou outra qualquer na sua raiz como 
/partilha  para que todos usuários deste computador possam utilizem a mesma, ou crie dentro do seu HOME para somente você.\n\nAVISO\n\nA permissão da pasta compartilhada foi fixada em 777 (chmod 777) para que 
todos os usuários deste computador e do remoto possam gravar arquivos nela, caso não deseja isto altere manualmente após concluído o script."
compartilhamento=$(zenity --title="Zsmb" --entry --text="Digite um nome curto para o compartilhamento sem espaços em branco no nome. \nExemplos: documentos ou documentos-faculdade ")
echo ["$compartilhamento"] >> /etc/samba/smb.conf
caminho=$(zenity --title="Zsmb" --entry --text="Digite o caminho completo da pasta ou cole o mesmo, exemplo /mnt/partilha/Documentos da faculdade ")
echo path = "$caminho" >> /etc/samba/smb.conf
gravar=$(zenity --title="Zsmb" --entry --text="Deseja permitir gravação e alteração nos arquivos? \nDigite yes para sim e no para não. ")
echo writable = "$gravar" >> /etc/samba/smb.conf
echo guest ok = yes >> /etc/samba/smb.conf
chmod 777 "$caminho"

;;

"Editar o arquivo smb.conf" )
leafpad /etc/samba/smb.conf

;;

"Adicionar usuario ao Samba" )
zenity --info --title "Zsmb" --text "O usuário deve existir no seu sistema"
user=$(zenity --title="Zsmb" --entry --text="Digite um nome de usuário do sistema ")
xterm -g 45x10 -fa 'Luxi Mono' -fs 12 -hold -e smbpasswd -a "$user"

;;


"Reiniciar servidor Samba" )
xterm -g 45x10 -fa 'Luxi Mono' -fs 12 -hold -e /etc/rc.d/rc.samba restart

;;

"Ajuda" )
firefox /usr/share/doc/zsmb/zsmb-ajuda.html

;;

        *)
            break
          ;;
        esac
done

Scripts recomendados

Configurar o Ubuntu para instalar drivers NVIDIA

Alarm NOW!

conversor de bases no shell

Instalação de servidor LAMP com PHP 7 no Mint

Teste compatativo entre discos e/ou partições


  

Comentários
[1] Comentário enviado por pbonfanti em 14/11/2018 - 12:43h

Uma sugestão, o arquivo padrão do samba é o smb.conf. Como a função do script é mexer apenas nos compartilhamentos, você pode usar um novo arquivo, no meu caso eu usei o nome sambashares.conf, e no smb.conf ficariam as configurações globais e uma linha:
include = /etc/samba/sambashares.conf
Por esse metodo eu não preciso ficar alterando o smb.conf a não ser que queira fazer uma mudança global.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts