configurar do samba e pureftpd
Publicado por Robert Willian 15/10/2005
[ Hits: 7.923 ]
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
Desligando infraestrutura de ITM6
Simples inventário de máquinas em Shell Script
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI