Automatizar o controle de um servidor de compartilhamentos Samba
Publicado por Denilson Martins (última atualização em 10/02/2015)
[ Hits: 4.353 ]
Homepage: www.vivaolinux.com.br
Criei o script para automatizar o controle de usuários no Samba, cabe melhorias mas por enquanto é um script de uma ideia inicial.
#!/bin/bash
# @uthor - Denilson Martins -- 01/2015
listaUsuarios=/etc/passwd
listaGrupos=/etc/group
Menu() {
clear
echo "#################################################"
echo "# USUARIOS COMPARTILHAMENTO: #"
echo "# --------------------------------------------- #"
echo "# 1-> ADICIONAR USUARIO: #"
echo "# 2-> DELETAR USUARIO: #"
echo "# 3-> TROCAR SENHA USUARIO: #"
echo "# 4-> ADICIONAR GRUPO DE USUARIOS: #"
echo "# 5-> DELETAR GRUPO DE USUARIOS: #"
echo "# 6-> ADICIONAR USUARIO A UM GRUPO EXISTENTE: #"
echo "# 7-> REMOVER USUARIO DE UM GRUPO EXISTENTE: #"
echo "# 8-> LISTAR USUARIOS DE UM GRUPO EXISTENTE: #"
echo "# QUALQUER TECLA DIFERENTE PARA SAIR: #"
echo "# --------------------------------------------- #"
echo "# DIGITE UMA OPCAO: #"
echo "#_______________________________________________#"
read op
case $op in
1) Adicionar ;;
2) Deletar ;;
3) TrocarSenha ;;
4) AdicionarGrupo ;;
5) DeletarGrupo ;;
6) AdicionarUsuarioGrupo ;;
7) RemoverUsuarioGrupo ;;
8) ListarUsuarioGrupo ;;
*) exit ;;
esac
}
Adicionar(){
listaUsuarios
echo "Digite o nome do usuario"
read user
adduser --no-create-home --disabled-login $user
smbpasswd -a $user
/etc/init.d/samba restart
listaUsuarios
msgVoltar
}
Deletar(){
listaUsuarios
echo "Digite o nome do usuario"
read user
smbpasswd -x $user
deluser $user
/etc/init.d/samba restart
listaUsuarios
msgVoltar
}
TrocarSenha(){
listaUsuarios
echo "Digite o nome do usuario"
read user
smbpasswd -a $user
/etc/init.d/samba restart
msgVoltar
}
AdicionarGrupo() {
listaGrupos
echo "Digite o nome do grupo: "
read grupo
addgroup $grupo
listaGrupos
msgVoltar
}
DeletarGrupo() {
listaGrupos
echo "Digite o nome do grupo: "
read grupo
delgroup $grupo
clear
listaGrupos
msgVoltar
}
AdicionarUsuarioGrupo() {
listaUsuarios
echo "Digite o nome do usuario"
read user
listaGrupos
echo "Digite o nome do grupo"
read grupo
adduser $user $grupo
msgVoltar
}
RemoverUsuarioGrupo() {
listaUsuarios
echo "Digite o nome do usuario"
read user
listaGrupos
echo "Digite o nome do grupo"
read grupo
deluser $user $grupo
msgVoltar
}
ListarUsuarioGrupo() {
listaGrupos
echo "Digite o nome do grupo"
read grupo
cat $listaGrupos | grep $grupo | awk -F: '{ print "--------------------------- \n" "Usuarios do grupo $grupo:\n" $4}'
echo "---------------------------"
echo "Enter para continuar:"
read
msgVoltar
}
## Funcoes basicas mas com bastante repeticao
listaUsuarios() {
clear
echo "---------------------------"
echo "Usuarios ativos no compartilhamento"
echo "---------------------------"
cat $listaUsuarios | grep [0-1][0-9][0-9][0-9] | awk -F: '{print $1}'
echo "---------------------------"
}
listaGrupos() {
clear
echo "---------------------------"
echo "Grupos ativos no compartilhamento"
echo "---------------------------"
cat $listaGrupos | grep [0-1][0-9][0-9][0-9] | awk -F: '{print $1}'
echo "---------------------------"
}
msgVoltar(){
echo "--------------------------"
echo "Voltando ao Menu principal"
echo "--------------------------"
sleep 3
Menu
}
Menu
Instalação do Gentoo - Parte 1
Script Iptables ( Passou em Testes )
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
O que houve com slackware ??? (12)
Alterar conteúdo de dica [RESOLVIDO] (3)
Vou destruir sua infância:) (5)









