Criação de servidores de arquivos simples com Samba
Publicado por Felipe (última atualização em 09/10/2016)
[ Hits: 2.827 ]
O script precisa do Samba e o dialog instalados, depois é só executar, colocar o nome de acesso que o servidor irá receber, cadastrar os grupos e seus usuários. Cada usuário só tem acesso a pasta do seu grupo podendo alterar somente sua pasta, mas ver o conteúdo das outras do mesmo grupo. Há também a possibilidade de criar grupo público.
#!/bin/bash ### Script com dialog para automatizar criação e administração server samba #Comentar apos o primeiro uso!!!! mv /etc/samba/smb.conf /etc/samba/smb.conf.original mkdir grpsamba chmod 775 grpsamba touch grpsamba/grupos.txt nome=$( dialog --stdout --inputbox 'Nome do servidor' 0 0 ) echo "[global]" >> /etc/samba/smb.conf echo "server string =" $nome >> /etc/samba/smb.conf echo "netbios name =" $nome >> /etc/samba/smb.conf echo "workgroup = WORKGROUP" >> /etc/samba/smb.conf echo "security = user" >> /etc/samba/smb.conf echo "log file = /var/log/samba/samba.log" >> /etc/samba/smb.conf while : ; do escolha=$( dialog --stdout \ --title 'Menu' \ --menu 'Escolha um opção' 0 0 0 \ 1 'Adicionar Grupos' \ 2 'Adicionar Usuarios' \ 3 'Pasta Publica' \ 4 'Remover usuarios' \ 5 'Remover Grupos' \ 6 'Trocar usuario de Grupo' \ 7 'Listar usuarios de um Grupo' \ 8 'Listar Grupos' \ 9 'Exit' \ ) [ $? -ne 0 ] && break case $escolha in 1)grpo1=$( dialog --stdout --inputbox 'Nome do Grupo:' 0 0 ) echo $grpo1 >> grpsamba/grupos.txt touch grpsamba/$grpo1.Usuarios mkdir grpsamba/$grpo1 addgroup $grpo1 way=$(pwd) ### adicionando compartilhamento do grupo ### echo "#$grpo1" >> /etc/samba/smb.conf echo [$grpo1] >> /etc/samba/smb.conf echo comment = Acesso Restrito a $grpo1 >> /etc/samba/smb.conf echo path = $way/grpsamba/$grpo1 >> /etc/samba/smb.conf echo public = no >> /etc/samba/smb.conf echo writable = yes >> /etc/samba/smb.conf echo valid users = @$grpo1 >> /etc/samba/smb.conf echo force group = $grpo1 >> /etc/samba/smb.conf chown root.$grpo1 -R grpsamba/$grpo1 chmod 750 grpsamba/$grpo1 ;; 2)user=$( dialog --stdout --inputbox "Nome de Usuario" 0 0 ) useradd --no-create-home -s /bin/false $user smbpasswd -a $user group=$( dialog --stdout --inputbox "Qual é o Grupo deste Usuario?" 0 0 ) adduser $user $group mkdir grpsamba/$group/$user chown $user:$group -R grpsamba/$group/$user chmod 750 grpsamba/$group/$user echo $user >> grpsamba/$group.Usuarios ### reiniciando samba ### /etc/init.d/samba restart ;; 3)pubpast=$( dialog --stdout --inputbox "Nome para pasta Publica:" 0 0 ) touch grpsamba/$pubpast.pubpast mkdir grpsamba/$pubpast ### adicionando compartilhamento publico ### echo "#$pubpast" >> /etc/samba/smb.conf echo [$pubpast] >> /etc/samba/smb.conf echo comment = Acesso Publico >> /etc/samba/smb.conf echo path = grpsamba/$pubpast >> /etc/samba/smb.conf echo public = yes >> /etc/samba/smb.conf echo writable = yes >> /etc/samba/smb.conf chmod 777 grpsamba/$pubpast ;; 4)rmvuser=$( dialog --stdout --inputbox "Usuario a ser Removido:" 0 0 ) grpuser=$( dialog --stdout --inputbox "Digite o Grupo do Usuario:" 0 0 ) corte=$(cat /grpsamba/$grpuser.Usuarios | grep -v $userrmv) rm grpsamba/$grpuser.Usuarios echo $corte > grpsamba/$grpuser.Usuarios userdel -r $userrmv dialog --infobox "Usuario Deletado " 0 0 ;; 5)rmgrp=$( dialog --stdout --inputbox "Grupo a ser Removido" 0 0 ) groupdel $rmgrp corte=$(cat grpsamba/grupos.txt | grep -v $rmgrp) echo $corte > grpsamba/grupos.txt ;; 6)usergrp=$( dialog --stdout --inputbox 'Digite o nome do Usuario' 0 0 ) grpuser=$( dialog --stdout --inputbox 'Digite o novo grupo do Usuario' 0 0 ) usermod -G $grpuser $usergrp dialog --infobox 'O Usuario $usergrp faz parte do grupo $grpuser' 0 0 ;; 7)grplist=$( dialog --stdout --inputbox 'Qual grupo a ser listado?' 0 0 ) dialog --textbox grpsamba/$grplist.Usuarios 0 0 ;; 8)dialog --textbox grpsamba/grupos.txt 0 0 ;; esac done
Script p/ instalar modem onboards
Script de compilação do Xorg 7.2 otimizado para Slackware 64 bits (Slamd64)
ping alarme - avisa quando o ip esta offline e gera log
Converte diretório, subdiretório e arquivos de Maiúscula -> minúscula.
Nenhum comentário foi encontrado.
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
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
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
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
Não consigo instalar o WineHQ no meu notebook vaio FE15 (Debian) (7)