Criação de servidores de arquivos simples com Samba
Publicado por Felipe (última atualização em 09/10/2016)
[ Hits: 2.678 ]
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
Backup com dump, restore, sendmail e log completo
Protegendo arquivos contra acessos simultâneos
Nenhum comentário foi encontrado.
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Dongle Bluetooth 5.0 não funciona no Pop Os 22.04 (2)
Impressora Canon Ip 1800 (Drivers) 64 bit (2)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba