configurar do samba e pureftpd
Publicado por Robert Willian 15/10/2005
[ Hits: 8.210 ]
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
Bloquear ataques DDoS com bloqueio de range de IPs e avisar por e-mail
Autenticação automática no Speedy Home
conssh.sh - Frontend para SSH via proxy HTTP
cal2svg gerador de calendários em formato vetorial SVG
Nenhum comentário foi encontrado.
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
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
VOL já não é mais como antes? (1)
É normal não gostar de KDE? (12)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









