Criação de servidores de arquivos simples com Samba
Publicado por Felipe (última atualização em 09/10/2016)
[ Hits: 2.926 ]
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
Firewall completo com iptables
Backup diário das bases do MySQL
Ativando o MRTG para Roteadores via SNMP
Bloquear o DHCP de dispositivos móveis
Kernel 4.0 para Ubuntu, Linux Mint, Lubuntu e derivados
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Quebra de linha na data e hora no Linux Mint
Organizando seus PDF com o Zotero
tentando instalar em um notebook antigo o Linux LegacyOS_2023... [RESO... (9)
Problema com Conexão Outlook via Firewall (OpenSUSE) com Internet Fibr... (5)