configurar do samba e pureftpd
Publicado por Robert Willian 15/10/2005
[ Hits: 7.888 ]
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
Instalação da Multilib no Slackware
Visual para tcpdump com dialog
Configuração do Mysql no Suse, quando ocorre o seguinte erro: "ERROR 2002: Can't connect to local My
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
É cada coisa que me aparece! - não é só 3% (3)
Melhorando a precisão de valores flutuantes em python[AJUDA] (5)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta