Navigation

    Netgate Discussion Forum
    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search

    [RESOLVIDO] Adicionar novos privilégios do sistema.

    Portuguese
    2
    14
    3612
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      dmenezes last edited by

      Oi,

      alguém já adicionou algum pacote extra, da instalação padrão, na lista de privilégios do sistema?

      mesma dúvida de um tópico antigo, http://forum.pfsense.org/index.php/topic,25160.0.html

      estou querendo adicionar o "OpenVPN Client Export Utility" nessa lista!

      no arquivo vpn_openvpn_export.php adicionei as linhas abaixo

      ##|+PRIV
      ##|*IDENT=page-openvpn-client-export
      ##|*NAME=OpenVPN: Client Export Utility
      ##|*DESCR=Allow access to the 'OpenVPN: Client Export Utility' page.
      ##|MATCH=vpn_openvpn_export.php
      ##|-PRIV

      pois são esses dados que o código system_usermanager_addprivs.php na linha 186 seleciona.

      acredito que isso e apenas o começo… alguma ideia?

      1 Reply Last reply Reply Quote 0
      • marcelloc
        marcelloc last edited by

        dmenezes,

        O local para inclusões de permissões é no diretorio /etc/inc/priv, não precisa incluir nada de diferente no arquivo vpn_openvpn_export.php

        segue exemplo do arquivo de permissões
        /etc/inc/priv/postfix.priv.inc

        
        global $priv_list;
        
        $priv_list['page-diagnostics-search-email'] = array();
        $priv_list['page-diagnostics-search-email']['name'] = "WebCfg - Diagnostics: Postfix search email";
        $priv_list['page-diagnostics-search-email']['descr'] = "Allow access to postfix search page.";
        $priv_list['page-diagnostics-search-email']['match'] = array();
        $priv_list['page-diagnostics-search-email']['match'][] = "postfix_search.php*";
        
        $priv_list['page-status-postfix-queue'] = array();
        $priv_list['page-status-postfix-queue']['name'] = "WebCfg - Status: Postfix queue";
        $priv_list['page-status-postfix-queue']['descr'] = "Allow access to postfix queue page.";
        $priv_list['page-status-postfix-queue']['match'] = array();
        $priv_list['page-status-postfix-queue']['match'][] = "postfix_queue.php*";
        
        $priv_list['page-services-postfix-forwarder'] = array();
        $priv_list['page-services-postfix-forwarder']['name'] = "WebCfg - Services: All xml pages (config).";
        $priv_list['page-services-postfix-forwarder']['descr'] = "Allow access to any xml package page.";
        $priv_list['page-services-postfix-forwarder']['match'] = array();
        $priv_list['page-services-postfix-forwarder']['match'][] = "pkg_edit.php*";
        $priv_list['page-services-postfix-forwarder']['match'][] = "postfix*.php*";
        ?>
        

        Treinamentos de Elite: http://sys-squad.com

        Help a community developer! ;D

        1 Reply Last reply Reply Quote 0
        • D
          dmenezes last edited by

          Obrigado dude!

          1 Reply Last reply Reply Quote 0
          • D
            dmenezes last edited by

            o correto seria o pacote instalado ja vim com o arquivo .inc e jogar em /usr/local/pkg/priv

            :)

            1 Reply Last reply Reply Quote 0
            • marcelloc
              marcelloc last edited by

              Sim. O openvpn não é nativo?
              Se for parte de algum pacote adicional, posta o arquivo que eu publico.

              Treinamentos de Elite: http://sys-squad.com

              Help a community developer! ;D

              1 Reply Last reply Reply Quote 0
              • D
                dmenezes last edited by

                OpenVPN sim.

                O pacote e o OpenVPN: Client Export Utility

                E tem outro problema, na WebGUI este pacote fica dentro de OpenVPN

                VPN
                OpenVPN (vpn_openvpn_server.php)

                ou seja para se ter acesso ao OpenVPN: Client Export Utility (vpn_openvpn_export.php)

                vc precisa ter permissao para vpn_openvpn_server.php

                no futuro a opcao OpenVPN deve ser mudada, pois dessa maneira nao e inteligente. (eu nao preciso dar acesso as configuracoes do servidor vpn, apenas para importar os usuarios)

                no meu caso adicionei a opcao Client Export em VPN.

                em fbegin.inc
                $vpn_menu[] = array("Client Export", "/vpn_openvpn_export.php");

                para ser ter um menu direto ao Client Export.

                e criei o openvpnexport.inc

                global $priv_list;

                $priv_list['page-openvpn-client-export'] = array();
                $priv_list['page-openvpn-client-export']['name'] = "WebCfg - OpenVPN: Client Export Utility";
                $priv_list['page-openvpn-client-export']['descr'] = "Allow access to the OpenVPN: Client Export Utility page.";
                $priv_list['page-openvpn-client-export']['match'] = array();
                $priv_list['page-openvpn-client-export']['match'][] = "vpn_openvpn_export.php*";

                ?>

                1 Reply Last reply Reply Quote 0
                • marcelloc
                  marcelloc last edited by

                  dmenezes,

                  Vou testar as atualizações e publicar a correção.

                  Obrigado pela contribuição.

                  Treinamentos de Elite: http://sys-squad.com

                  Help a community developer! ;D

                  1 Reply Last reply Reply Quote 0
                  • marcelloc
                    marcelloc last edited by

                    Acabei de publicar a versão 0.9.7 com o arquivo de permissões e o menu na aba vpn.

                    EDIT

                    Tive que retirar a opção do menu, o pacote é suportado pelo core team e eles não gostaram muito da idéia.

                    testei aqui com sucesso a permissão sem a opção de menu. Quando um usuario só tem permissão para o openvpn-client-export, ele cai direto na tela.
                    Quando a permissão inclui o dashboard, o usuario cai na tela do client export quando acessa o menu openvpn.

                    Treinamentos de Elite: http://sys-squad.com

                    Help a community developer! ;D

                    1 Reply Last reply Reply Quote 0
                    • D
                      dmenezes last edited by

                      Legal!

                      Eu tb vejo que nao ha necessidade de criar um outro menu, caso indo na opcao OpenVPN vc tenha acesso ao client export, coisa que nao esta acontecendo!
                      apenas criei para facilitar o meu lado com o cliente. :)

                      Mas nao obtive sucesso da forma que vc falou… Quando tenho o usuario com a permissao para acessar apenas o Client Export (vpn_openvpn_export.php) (Na opcao OpenVPN)
                      e quando vou em OpenVPN esta o link vpn_openvpn_server.php assim indo para o dashboard.

                      uma outra solucao para o meu problema seria apenas alterar
                      $vpn_menu[] = array("OpenVPN", "/vpn_openvpn_server.php");

                      para

                      $vpn_menu[] = array("OpenVPN", "/vpn_openvpn_export.php");

                      sendo assim o menu OpenVPN cairia direto no link do Client Export
                      mas repito solucao para o meu caso... arranjo... e nao para ser modificado dessa forma no projeto...

                      .....

                      outra coisa...
                      acredito que pela organizacao do sistema... os arquivo de privilegios  de pacotes devem ser jogados em /usr/local/pkg/priv
                      [2.0-RELEASE][root@pfSense.localdomain]/etc/inc(39): grep -rn '/usr/local/pkg/priv' .
                      ./priv.inc:76:if(is_dir("/usr/local/pkg/priv")) {
                      ./priv.inc:77:  $dir_array = get_priv_files("/usr/local/pkg/priv");
                      ./priv.inc:79:          if (!is_dir("/usr/local/pkg/priv/{$file}") && stristr($file,".inc"))
                      ./priv.inc:80:                  include("/usr/local/pkg/priv/{$file}");

                      ….

                      e no arquivo adicionar a linha em negrito que tb faz parte do utilitario openvpnexport.inc

                      global $priv_list;

                      $priv_list['page-openvpn-client-export'] = array();
                      $priv_list['page-openvpn-client-export']['name'] = "WebCfg - OpenVPN: Client Export Utility";
                      $priv_list['page-openvpn-client-export']['descr'] = "Allow access to the OpenVPN: Client Export Utility page.";
                      $priv_list['page-openvpn-client-export']['match'] = array();
                      $priv_list['page-openvpn-client-export']['match'][] = "vpn_openvpn_export.php*";
                      $priv_list['page-openvpn-client-export']['match'][] = "vpn_openvpn_export_shared.php";*

                      ?>

                      excelente trabalho o seu :)

                      1 Reply Last reply Reply Quote 0
                      • marcelloc
                        marcelloc last edited by

                        Vou sugerir a alteração ao core team, eles nao gostaram muito da alteração de um pacote 'deles' sem antes discutir sobre o assunto.

                        Com relação a permissão, meu teste foi da seguinte forma:

                        • cria o Usuario

                        • cria um grupo

                        • inclui o Usuario no grupo

                        • inclui a permissão do openvpn somente ou também inclui o 'dashboard all'

                        Aqui funcionou, veja se você consegue o mesmo resultado.

                        Treinamentos de Elite: http://sys-squad.com

                        Help a community developer! ;D

                        1 Reply Last reply Reply Quote 0
                        • D
                          dmenezes last edited by

                          @marcelloc

                          tenta apenas com essas permissoes

                          WebCfg - Dashboard (all) Allow access to all pages required for the dashboard.
                          WebCfg - OpenVPN: Client Export Utility

                          e ver se funciona…

                          comigo nao funcionou!

                          1 Reply Last reply Reply Quote 0
                          • marcelloc
                            marcelloc last edited by

                            foi exatamente como testei.

                            a única diferença é que apliquei as permissões em um grupo.

                            Treinamentos de Elite: http://sys-squad.com

                            Help a community developer! ;D

                            1 Reply Last reply Reply Quote 0
                            • D
                              dmenezes last edited by

                              putz! agora estou grilado com isso! hehe nao funciona!
                              ja limpei ate cache hahaha

                              o seu teste foi com apenas essas 2 opcoes nada mais? :o

                              1 Reply Last reply Reply Quote 0
                              • marcelloc
                                marcelloc last edited by

                                o seu teste foi com apenas essas 2 opcoes nada mais?

                                Sim. Vou fazer denovo mais tarde e posto o resultado.

                                Treinamentos de Elite: http://sys-squad.com

                                Help a community developer! ;D

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post