Script Shell para Administração e Configuração do Samba em Red-Hat / Fedora
Publicado por Ricardo Gellman (última atualização em 05/07/2011)
[ Hits: 5.475 ]
Com o código abaixo irei, a partir de um menu básico case/shell, fornecer ao usuário as opções básicas de administração do samba para Linux RH, como criar usuários, compartilhamentos, grupos, etc. Lembre-se de liberar as portas do samba no iptables, e manter o smb.conf com o cabeçalho básico que forneço logo acima do script.
$DIRFILES é onde será a raiz das pastas compartilhadas
NOTA: Samba deve conter as seguintes linhas para correto funcionamento:
[global]
workgroup = mygroup
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
security = user
cups options = raw
############################################# # Script para Adminstração do Samba do Fedora # Ricardo Gellman 06/2011 # WWW.ALEMCORP.COM ############################################# #!/bin/ksh if [ "`whoami`" != "root" ];then echo "Script deve ser executado com usuario root" echo exit 0 fi while [ 1 ] do clear echo '*****************************' echo '1 - Criar Compartilhamento' echo '2 - Criar usuario' echo '3 - Apagar usuario' echo '4 - Adcionar usuario ao Compartilhamento' echo '5 - Remover usuario de um Grupo Compartilhado' echo '*****************************' read a case $a in 1) DIRFILES=/Arquivos echo "Digite o Nome da pasta a ser Compartilhada..." read folder if cat /etc/samba/smb.conf | grep -i "\[$folder\]" >/dev/null;then echo "Compartilhamento Ja existe..." echo sleep 3 else mkdir $DIRFILES/$folder >/dev/null chmod 770 $DIRFILES/$folder >/dev/null groupadd $folder >/dev/null chown root:$folder $DIRFILES/$folder chmod 770 $DIRFILES/* echo '-------------------------------' echo "Pasta criada - $DIRFILES/$folder" echo "Grupo de acesso - $folder" echo '-------------------------------' echo echo "Digite o Usuario que ira ter Acesso a pasta" read user CHKUSER=`id $user` if [ "$CHKUSER" != "" ];then echo "Usuario $user ja existe..." usermod -a -G $folder $user >/dev/null echo "Usuario [ $user ] adcionado com sucesso ao grupo [ $folder ]" echo '*******************************' echo "Deseja Definir uma senha de acesso ao Samba, para o usuario $user (s/n)?" read sn case $sn in s) echo "Escolha a senha de Acesso ao usuario: $user" smbpasswd -a $user ;; n) ;; esac echo GETSMBIDS=`cat /etc/samba/smbusers | grep $folder 2>/dev/null | grep $user 2>/dev/null` echo "$GETSMBIDS" | while read IDS do if [ "$IDS" == "$folder = $user" ];then echo "Entrada < $folder = $user > existente em: /etc/samba/smbusers" echo sleep 3 elif [ "$IDS" == "" ];then echo "Inserindo entrada: $folder = $user no /etc/samba/smbusers" echo "$folder = $user" >> /etc/samba/smbusers echo sleep 3 else echo "Inserindo entrada $IDS,$user em /etc/samba/smbusers" echo "$IDS,$user" >> /etc/samba/smbusers echo sleep 3 fi done else useradd -G $folder $user >/dev/null echo "Usuario [ $user ] adcionado com sucesso ao grupo [ $folder ]" echo '*******************************' echo "Escolha a senha de Acesso ao usuario: $user" smbpasswd -a $user echo GETSMBIDS=`cat /etc/samba/smbusers | grep $folder 2>/dev/null | grep $user 2>/dev/null` echo "$GETSMBIDS" | while read IDS do if [ "$IDS" == "$folder = $user" ];then echo "Entrada < $folder = $user > existente em: /etc/samba/smbusers" echo sleep 3 elif [ "$IDS" == "" ];then echo "Inserindo entrada: $folder = $user no /etc/samba/smbusers" echo "$folder = $user" >> /etc/samba/smbusers echo sleep 3 else echo "Inserindo entrada $IDS,$user em /etc/samba/smbusers" echo "$IDS,$user" >> /etc/samba/smbusers echo sleep 3 fi done fi sleep 2 echo " [$folder] path = $DIRFILES/$folder writable = yes valid users = @$folder " >> /etc/samba/smb.conf echo "Pasta Criada com sucesso" echo '**********************************************************' echo "-----------------/etc/samba/smb.conf----------------------" tail -6 /etc/samba/smb.conf echo "-----------------/etc/samba/smbusers----------------------" cat /etc/samba/smbusers | grep $user | grep $folder echo '----------------------/etc/passwd-------------------------' grep $user /etc/passwd echo '----------------------/etc/group--------------------------' grep $folder /etc/group echo sleep 10 fi ;; 2) echo "Digite o Usuario a ser criado" read user if id $user >/dev/null 2>&1;then echo "Usuario Ja existe" echo sleep 3 else echo "Digite a Senha do Usuario a ser criado" read senha echo "Usuario Sera de uso pessoal[Lucas] ou uso corporativo[Administrativo] - Escolha(p/c) ?" read op case $op in p) useradd -N $user -p $senha >/dev/null echo "Usuario $user criado com sucesso" echo sleep 3 ;; c) useradd -U -M $user -p $senha >/dev/null echo "Usuario $user criado com sucesso" echo sleep 3 ;; *) echo "Opção invalida..." echo sleep 3 ;; esac fi ;; 3) echo "Digite o Usuario a ser deletado" read user userdel -r $user echo "Processo de Deleção concluido..." echo sleep 3 ;; 4) echo "Digite o Usuario a ser Adcionado" read user echo "Digite o Grupo que o usuario sera adcionado" read grp CHKUSER=`id $user 2>/dev/null` if [ "$CHKUSER" != "" ];then echo "Usuario $user ja existe..." usermod -a -G $grp $user >/dev/null echo "Usuario [ $user ] adcionado com sucesso ao grupo [ $grp ]" echo '*******************************' echo "Deseja Definir uma senha de acesso ao Samba, para o usuario $user (s/n)?" read sn case $sn in s) echo "Escolha a senha de Acesso ao usuario: $user" smbpasswd -a $user ;; n) ;; esac GETSMBIDS=`cat /etc/samba/smbusers | grep $grp 2>/dev/null | grep $user 2>/dev/null` echo "$GETSMBIDS" | while read IDS do if [ "$IDS" == "$grp = $user" ];then echo "Entrada < $grp = $user > existente em: /etc/samba/smbusers" echo sleep 3 elif [ "$IDS" == "" ];then echo "Inserindo entrada: $grp = $user no /etc/samba/smbusers" echo "$grp = $user" >> /etc/samba/smbusers echo sleep 3 else echo "Inserindo entrada $IDS,$user em /etc/samba/smbusers" echo "$IDS,$user" >> /etc/samba/smbusers echo sleep 3 fi done echo "-----------------/etc/samba/smbusers----------------------" cat /etc/samba/smbusers | grep $user | grep $grp echo '----------------------/etc/passwd-------------------------' grep $user /etc/passwd echo '----------------------/etc/group--------------------------' grep $grp /etc/group echo sleep 10 else #useradd -g $grp $user >/dev/null useradd -g $grp $user >/dev/null 2>&1 echo "Usuario [ $user ] adcionado com sucesso ao grupo [ $grp ]" echo '*******************************' echo "Escolha a senha de Acesso ao usuario: $user" smbpasswd -a $user echo GETSMBIDS=`cat /etc/samba/smbusers | grep $grp 2>/dev/null | grep $user 2>/dev/null` echo "$GETSMBIDS" | while read IDS do if [ "$IDS" == "$grp = $user" ];then echo "Entrada < $grp = $user > existente em: /etc/samba/smbusers" echo sleep 3 elif [ "$IDS" == "" ];then echo "Inserindo entrada: $grp = $user no /etc/samba/smbusers" echo "$grp = $user" >> /etc/samba/smbusers echo sleep 3 else echo "Inserindo entrada $IDS,$user em /etc/samba/smbusers" echo "$IDS,$user" >> /etc/samba/smbusers echo sleep 3 fi done echo "-----------------/etc/samba/smbusers----------------------" cat /etc/samba/smbusers | grep $user | grep $grp echo '----------------------/etc/passwd-------------------------' grep $user /etc/passwd echo '----------------------/etc/group--------------------------' grep $grp /etc/group echo sleep 10 fi ;; 5) echo "Digite o Usuario a ser Removido do grupo de Compartilhamento" read user echo "Usuario pertence aos grupos abaixo:" SHAREGRP=`id -nG $user` echo "Nota: O usuario nao poderá ser removido de seu grupo primario" echo "Selecione o grupo a ser removido" read rmgrp for grp in $SHAREGRP do if [ "$grp" != "$rmgrp" ];then #Não existe metodo de remocao, logo, irei adcionar todos, exceto o removido usermod -G $grp $user fi done echo "Grupos atuais:" id -nG $user ;; esac done
MURFEX (MUltiple Rar File EXtractor)
Copia um DVD de um Game para o HDD do Play2 via rede
Programs -- Script Simples e limitado pra instalação de arquivos
Cálculo da Aplicação Financeira
Nenhum comentário foi encontrado.
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Remoção de propaganda com o programa Comskip[AJUDA] (6)
PC não liga no filtro de linha (5)