Criação de servidores de arquivos simples com Samba
Publicado por Felipe (última atualização em 09/10/2016)
[ Hits: 3.227 ]
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
Gerenciamento de logs em servidores de aplicação
Sysinfo - Informações sobre o seu computador
Tabela de cores em shellscript
Conversor de logs do svn para rss
Nenhum comentário foi encontrado.
File Browser: Crie sua Nuvem Pessoal Privada
A produção de áudio e vídeo no Linux e as distribuições dedicadas a esse fim
Criptografando sua Home com Gocryptfs para tristeza do meliante
A Involução do Linux e as Lambanças Desnecessárias desde o seu Lançamento
O Journal no Linux para a guarda e consulta de logs do sistema
Gerenciamento de Vídeo Híbrido (Intel/NVIDIA) via nvidia-prime no Ubuntu e derivados
Assistindo IPTV no Linux com Fred TV e Lista Free TV
Impressora Tomate MDK-007 no Ubuntu (ou qualquer distro Linux)
Acelerando a compilação de pacotes no Arch Linux (AUR) usando todos os núcleos do processador
Depois não querem que eu fale sobre as baseadas... (4)
Tive um problema ao abrir minha partição Btrfs. Como posso resolver is... (0)









