Automatizar o controle de um servidor de compartilhamentos Samba
Publicado por Denilson Martins (última atualização em 10/02/2015)
[ Hits: 4.232 ]
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
Agendamento de compromissos com avisos baseados no horário
check_mem.sh - Plugin para o Nagios
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Warcraft II Remastered no Linux? (4)
O programa assinador digital (5)









