configurar do samba e pureftpd
Publicado por Robert Willian 15/10/2005
[ Hits: 8.283 ]
configura o samba como PDC ou nao da rede com varias opções de gerenciamento, para pure gerencia usuarios e o serviço...
obs: meu primeiro script publicado ..... :-)
#!/bin/bash
# Script escrito por Robert Willian Gil
#
# Para uso com PureFtpd compilar o pacotes com a opcao
# --with-everything , e ao executar pela primeira vez
# o scritp comecar com a opcao 3 depois a opcao 2 e
# por ultimo a opcao 1 para iniciar o servico.
# Para iniciar o servico junto com o sistema na
# inicializacao, gerar o rc.pureftpd usando a opcao
# numero 8 no menu do pureftpd e que vai gerar
# o arquivo /etc/rc.d/rc.pureftpd e inserir uma entrada
# no rc.local para executar o mesmo.
# editar o arquivo gerado e fazer algumas configuracoes
# necessarias.
# EX:
# no arquivo rc.local:
#
# /etc/rc.d/rc.pureftpd #isso o fara executar no inicializacao
#
# Padrao: /etc/rc.d/rc.pureftpd
# Para configurar as estacoes seguir procedimentos
# descritos em tutos espalhados ne net.
menuprogramas () {
clear
echo " ### Menu Principal ###"
echo " Opcoes de programas a configurar usando este script. "
echo
echo " 1. Samba"
echo " 2. PureFTP"
echo " 3. Acertar Horas e Data"
echo " 4. Sair do script"
echo
echo -n " Escolha a Opcao. => "
read programa
case "$programa" in
1 ) esambamenu ;;
2 ) epureftpmenu ;;
3 ) fdata ;;
4 ) clear && exit ;;
* ) clear ; echo ; echo ; echo ; echo ; echo " [ "$programa" ] opssao invalida! Entre com uma opcao valida!" ; sleep 3 && echo "" ; echo "" && clear && menuprogramas
esac
}
fdata () {
read -n 2 -p " HH:MM => " hrs
read -n 2 -p ":" min
echo
read -n 2 -p " DD/MM/AAAA => " dia
read -n 2 -p "/" mes
read -n 4 -p "/" ano
echo
echo -n " "
date $mes$dia$hrs$min$ano
clock -w
}
######### Aqui comeca o script do samba #########
esambamenu () {
esamba () {
echo " ### Menu Principal Samba ###"
echo
echo " 1. Gerar smb.conf em /etc/samba/"
echo " 2. Adicionar Compartilhamentos."
echo " 3. Adicionar Maquinas."
echo " 4. Adicionar Usuarios."
echo " 5. Adicionar Usuario root no samba."
echo " 6. Excluir Maquinas."
echo " 7. Excluir Usuarios."
echo " 8. Reiniciar o servico."
echo " 9. Sair do script"
echo " 10. Voltar ao Menu Programas"
echo
echo -n " Escolha a Opcao. => "
read opssao
case "$opssao" in
1 ) mkdirsamba ;;
2 ) settingsshare ;;
3 ) addmaquinas ;;
4 ) addusers ;;
5 ) smbpasswd -a root && sleep 1 && echo "Usuario root Criado" ;;
6 ) removemaquinas ;;
7 ) removeusers ;;
8 ) killsmb ;;
9 ) clear && exit ;;
10 ) clear && menuprogramas ;;
* ) clear ; echo ; echo ; echo ; echo ; echo " [ "$opssao" ] opssao invalida! Entre com uma opcao valida!" ; sleep 2 && echo "" ; echo "" && clear && esamba
esac
}
killsmb () {
echo " Finalizando o Samba"
killall smbd
killall nmbd
sleep 1
echo " Iniciando o Samba"
smbd && nmbd
sleep 1
echo " Servico Iniciado!"
}
mkdirsamba (){
if [ -e /etc/samba ]
then
echo " O arquivo /etc/samba/smb.conf e /etc/samba/smbpasswd"
echo " ja existem! Com a nova geracao os arquivos existentes serao "
echo -n " APAGADOS ! Deseja continuar ? Yes/No Enter = Yes = "
read jaexistecheck
if [ -z "$jaexistecheck" ] ; then
jaexiste="Yes"
else
jaexiste="$jaexistecheck"
fi
case "$jaexiste" in
Yes ) settings ;;
No ) exit ;;
* ) clear ; echo ; echo ; echo ; echo ; echo " [ "$jaexiste" ] opssao invalida! Entre com uma opcao valida! Yes/No " ; sleep 3 && echo "" ; echo "" && clear && mkdirsamba
esac
else
echo " A pasta /etc/samba nao exite" && echo " Criando a pasta /etc/samba" && sleep 2 && mkdir /etc/samba && echo " Pasta Criada!" && settings
fi }
gerasamba () {
echo "[global]
Workgroup = "$dominio"
server string = "$nameofserver"
hosts allow = "$ips"
security = "$nivelseg"
log file = /var/log/samba/log.%m
max log size = 100
logon script = %U.bat
domain logons = "$logonserver"
os level = 100
encrypt passwords = Yes
smb passwd file = /etc/samba/smbpasswd
preferred master = "$logonserver"
domain master = "$logonserver"
local master = "$logonserver"
netbios name = "$nameofserver"
printcap name = "$simp1"
load printers = "$simp2"
printing = bsd
[netlogon]
comment = Network Logon Service
path = /home/netlogon
guest ok = Yes
share modes = No
[profiles]
comment = Linux PDC
path = /home/profiles/%U
read only = No
create mask = 0700
profile acls = Yes
browseable = No
guest ok = Yes
locking = No" > /etc/samba/smb.conf && echo " Gerando smb.conf" && sleep 1 && touch /etc/samba/smbpasswd
if [ $simp3 = "sim" ] ; then
echo "[printers]
comment = All Printers
browseable = no
guest ok = yes
public = yes
printable = yes" >> /etc/samba/smb.conf && echo " Pronto." && pergunta1
else
echo " Pronto." && pergunta1
fi
}
settings (){
echo
echo -n " Nome do Dominio ou Grupo ? Enter = Gerencial = "
read dominiocheck
if [ -z "$dominiocheck" ] ; then
dominio="Gerencial"
else
dominio="$dominiocheck"
fi
echo -n " Faixa de IP? Enter = 192.168.200. = "
read ipscheck
if [ -z "$ipscheck" ] ;then
ips="192.168.200."
else
ips="$ipscheck"
fi
echo -n " Nome do Servidor? Enter = SrvLinux = "
read nameofservercheck
if [ -z "$nameofservercheck" ] ;then
nameofserver="SrvLinux"
else
nameofserver="$nameofservercheck"
fi
echo -n " Servidor de logon/Dominio ? Yes / No Enter = No = "
read logonservercheck
if [ -z "$logonservercheck" ] ; then
logonserver="No"
else
logonserver="$logonservercheck"
fi
servimp () {
echo -n " Path do arquivo printcap. Enter = /etc/printcap = "
read pathprint
if [ -z $pathprint ] ; then
printcap="/etc/printcap"
else
printcap="$pathprint"
fi
simp1="$printcap"
simp2="Yes"
}
echo -n " Servidor de impressao? Yes / No Enter = Yes = "
read checksimp
if [ -z $checksimp ] ; then
simp3="sim"
servimp
else
if [ $checksimp = "Yes" ] ; then
simp3="sim"
servimp
else
simp1="Not Configured"
simp2="No"
simp3="nao"
fi
fi
echo " Nivel de segunç"
echo " share = Segurança nivel de compartilhamento."
echo " user = Segurança nivel de servidor, apenas acessarao"
echo " usuarios autenticados no dominio ou com login e senha."
echo " Nivel de segurançescolhido? = "
echo -n " user / share? Enter = share = "
read nivelsegcheck
if [ -z "$nivelsegcheck" ] ; then
nivelseg="share"
else
nivelseg="$nivelsegcheck"
fi
gerasamba
}
addshare () {
echo "
["$nameshare"]
public = yes
comment = "$comment"
path = "$patharq"
create mask = 0777
writable = "$writable"
browseable = yes
guest ok = "$guestok" " >> /etc/samba/smb.conf && echo " Criando Compartilhamento." && sleep 1 && echo " Pronto." && pdesliga
}
settingsshare () {
echo -n " Nome do Compartilhamento? Enter = Soft = "
read namesharecheck
if [ -z "$namesharecheck" ] ; then
nameshare="Soft"
else
nameshare="$namesharecheck"
fi
echo " Comentario para a pasta. "
echo -n " Enter = Pasta "$nameshare" = "
read commentcheck
if [ -z "$commentcheck" ] ; then
comment="Pasta $nameshare"
else
comment="$commentcheck"
fi
echo " Path do compartilhamento? "
echo -n " Enter = /soft = "
read patharqcheck
if [ -z "$patharqcheck" ] ; then
if [ -e /soft ] ; then
patharq="/soft"
echo " Nao serao trocadas as permissoes das subpastas, cabendo"
echo " ao administrador setar permissoes nas devidas pastas."
echo " Enter para continuar"
read nulo
else
echo " A pasta /soft nao existe, criando-a"
mkdir /soft
chmod 777 /soft -R
sleep 1 && echo " Pasta Criada!"
patharq="/soft"
fi
else
if [ -e "$patharqcheck" ] ; then
patharq="$patharqcheck"
else
echo " A pasta "$patharqcheck" nao existe, criando-a"
mkdir -p "$patharqcheck"
chmod 777 $patharqcheck -R
sleep 1 && echo " Pasta Criada!"
patharq="$patharqcheck"
fi
fi
echo " Permitir escrita? yes/no "
echo -n " Enter = yes = "
read writablecheck
if [ -z "$writablecheck" ] ; then
writable="yes"
else
writable="$writablecheck"
fi
echo " Permitir guest? yes/no "
echo -n " Enter = yes = "
read guestokcheck
if [ -z "$guestokcheck" ] ; then
guestok="yes"
else
guestok="$guestokcheck"
fi
addshare
}
pdesliga () {
echo " E necessario reiniciar o servico para que as alteracoes"
echo " surtam efeito,"
echo -n " Deseja reiniciar o samba agora? yes/no Enter = y = "
read pdescheck
if [ -z "$pdescheck" ] ; then
pdes="yes"
else
pdes="$pdescheck"
fi
case $pdes in
yes ) killsmb ;;
no ) exit ;;
* ) echo " Escolha uma opcao valida" ; sleep 1 && pdesliga
esac
}
pergunta1 () {
echo -n " Deseja criar compartilhamentos? yes/no Enter = Yes = "
read yesnocheck
if [ -z "$yesnocheck" ] ; then
yesno="yes"
else
yesno="$yesnocheck"
fi
case "$yesno" in
yes ) settingsshare ;;
no ) pdesliga ;;
* ) echo " Digite 'yes' ou 'no'" && sleep 1 && pergunta1
esac
}
addmaquinas () {
echo -n " Nome da maquina? = "
read nomemaquina
useradd -d /dev/null -s /dev/null -m $nomemaquina$
echo -n " "
smbpasswd -am $nomemaquina$
sleep 1 &&
echo " Maquina $nomemaquina Criada!"
}
removemaquinas () {
echo -n " Nome da maquina p/ excluir? = "
read nomeexcluir
echo -n " "
smbpasswd -x $nomeexcluir$
userdel $nomeexcluir$
sleep 1 &&
echo " Maquina $nomeexcluir excluida!"
}
removeusers () {
echo -n " Nome do Usuario p/ excluir? = "
read nomeexcluiru
echo " Escolha: Opcao:"
echo " Excluir Apenas do samba. 1"
echo " Excluir do samba e do linux. 2"
echo -n " Opcao desejada. Enter = 2 = "
read opppcheck
if [ -z $opppcheck ] ; then
oppp=2
else
oppp=$opppcheck
fi
if [ $oppp = 1 ] ; then
echo -n " "
smbpasswd -x $nomeexcluiru
else
echo -n " "
smbpasswd -x $nomeexcluiru
userdel $nomeexcluiru
fi
}
addusers () {
echo -n " Nome do usuario a adicionar. = "
read nomeadd
adduser $nomeadd
smbpasswd -a $nomeadd
}
clear
esamba
}
####### Aqui termina o script do samba ########
###### Aqui comeca o script do pureftp ######
epureftpmenu () {
menupure () {
clear
echo " ### Menu Principal Pureftp ### "
echo
echo " 1. Iniciar o servico."
echo " 2. Adicionar Usuarios."
echo " 3. Adicionar usuarios e grupos padroes."
echo " 4. Deletar Usuario."
echo " 5. Mudar senha de usuarios."
echo " 6. Informacoes sobre usuarios."
echo " 7. Consulta usuarios cadastrados."
echo " 8. Gerar rc.pureftpd"
echo " 9. Sair do Script."
echo " 10. Voltar ao menu programas"
echo
echo -n " Escolha a opcao => "
read eopssao
case "$eopssao" in
1 ) opssoesini ;;
2 ) checkpdb ;;
3 ) addpadroes ;;
4 ) delusuarios ;;
5 ) changesenha ;;
6 ) showusuario ;;
7 ) echo "Usuario: ## Path Home:" ; pure-pw list | more ;;
8 ) geraini ;;
9 ) clear && exit ;;
10 ) clear && menuprogramas ;;
* ) clear ; echo ; echo ; echo ; echo ; echo " [ "$eopssao" ] opssao invalida! Entre com uma opcao valida!" ; sleep 3 && echo "" ; echo "" && clear && menupure
esac
}
addpadroes () {
userdel ftpuser
groupdel ftpgroup
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser
echo "Digite a Senha do usuario= normal ,senha obrigató."
pure-pw useradd normal -u ftpuser -d /dev/null
echo "Usuario normal adicionado" && sleep 1 && echo "Grupo ftpgroup e Usuario ftpuser ja existentes!" && sleep 3 && menupure
}
opssoesini () {
echo " Permitir loggin anonimo? "
echo -n " Y/n Enter = n = "
read logginanonimocheck
if [ -z "$logginanonimocheck" ] ; then
logginanonimo="n"
else
logginanonimo="$logginanonimocheck"
fi
if [ "$logginanonimo" = Y ] ; then
anonimo=
echo " Permitindo login anonymous"
sleep 1
else
anonimo="--noanonymous"
echo " Proibindo login anonymous"
sleep 1
fi
echo -n " Limite maximo de usuarios conectados. Enter = 15 => "
read maxcheck
if [ -z "$maxcheck" ]; then
maximousuarios=15
echo " Permitindo "$maximousuarios" usuario conectados simultaneamente"
sleep 1
else
maximousuarios="$maxcheck"
echo " Permitindo "$maxcheck" usuarios conectados simultaneamente"
sleep 1
fi
pure-ftpd --daemonize
killall pure-ftpd && pure-ftpd --daemonize "$anonimo" -c "$maximousuarios" -lpuredb:/etc/pureftpd.pdb
echo " ServiçIniciado com sucesso!" && sleep 3 && menupure
}
addusuarios () {
echo -n " Nome do usuario => "
read nomeuser
echo -n " Path da pasta base do usuario. Enter = /soft/ftp => "
read pathhomecheck
if [ -z "$pathhomecheck" ] ; then
pathhome="/soft/ftp"
if [ ! -e "$pathhome" ] ; then
mkdir -p "$pathhome"
echo " Pasta "$pathhome" nao existe, criando-a"
sleep 1 && echo " Home criado!"
chmod 777 "$pathhome" -R
else
chmod 777 "$pathhome" -R
fi
else
pathhome="$pathhomecheck"
if [ ! -e "$pathhomecheck" ] ; then
mkdir -p "$pathhomecheck"
echo " Pasta "$pathhomecheck" nao existe, criando-a"
sleep 1 && echo " Home criado!"
chmod 777 "$pathhomecheck" -R
else
chmod 777 "$pathhomecheck" -R
fi
fi
echo -n " Quota de espaco no HD? Enter = Ilimitado => "
read quotambcheck
if [ -z "$quotambcheck" ] ; then
quotamb=
else
quotamb="-N $quotambcheck"
fi
pure-pw useradd $nomeuser -u ftpuser -d $pathhome $quotamb -m
pure-pw show $nomeuser
}
checkpdb () {
if [ -e /etc/pureftpd.pdb ] ; then
addusuarios
else
if [ -e /etc/pureftpd.passwd ] ; then
echo " Criando banco de dados de usuarios" && sleep 2 && pure-pw mkdb && echo " Banco Criado!" && sleep 2 && addusuarios
else
echo " Énecessario criar usuario e grupos padroes"
sleep 2
echo " No menu principal selecione a opcao 3"
sleep 3 && menupure
fi
fi
}
delusuarios () {
echo -n " Nome do usuario a deletar? => "
read morre
pure-pw userdel $morre -m
echo " Usuario Deletado!"
sleep 2
menupure
}
changesenha () {
echo -n " Nome do usuario a mudar a senha. => "
read trocasenha
pure-pw passwd $trocasenha -m
echo " Senha trocada!"
menupure
}
showusuario () {
echo -n " Nome do usuario? => "
read nomeshow
pure-pw show $nomeshow
}
clear
menupure
}
function geraini {
echo "#!/bin/bash
#Permitir Login anonimo? Y / N .
logginanonimo=Y
#Numero maximo de usuario conectados simultaneamente.
maximousuarios=15
# Nao mexa daqui para baixo !
if [ \"$logginanonimo\" = Y ] ; then
anonimo=\"\"
else
anonimo=\"--noanonymous\"
fi
/usr/local/sbin/pure-ftpd --daemonize \"$anonimo\" -c \"$maximousuarios\" -lpuredb:/etc/pureftpd.pdb " > /etc/rc.d/rc.pureftpd
chmod 777 /etc/rc.d/rc.pureftpd
clear
echo "Arquivo gerado com exito em /etc/rc.d/rc.pureftpd" && sleep 2 && menupure
}
### Aqui termina o script do pureftp ###
menuprogramas # chama o menu principal
Biblioteca de funções de manipulação de arquivos CSV para shell script
Instalação do Nagios por script
Ajudem a melhorar este script IPTABLES
Compartilhando a Internet com Iptables
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático
Como impedir exclusão de arquivos por outros usuários no (Linux)
Formas seguras de instalar Debian Sid (7)
Alguém executou um rm e quase mata a Pixar! (5)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (12)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (5)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (6)









