[RESOLVIDO] Adicionar novos privilégios do sistema.
-
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
##|-PRIVpois 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?
-
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.incglobal $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*"; ?>
-
Obrigado dude!
-
o correto seria o pacote instalado ja vim com o arquivo .inc e jogar em /usr/local/pkg/priv
:)
-
Sim. O openvpn não é nativo?
Se for parte de algum pacote adicional, posta o arquivo que eu publico. -
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*";?>
-
dmenezes,
Vou testar as atualizações e publicar a correção.
Obrigado pela contribuição.
-
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. -
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 :)
-
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.
-
-
tenta apenas com essas permissoes
WebCfg - Dashboard (all) Allow access to all pages required for the dashboard.
WebCfg - OpenVPN: Client Export Utilitye ver se funciona…
comigo nao funcionou!
-
foi exatamente como testei.
a única diferença é que apliquei as permissões em um grupo.
-
putz! agora estou grilado com isso! hehe nao funciona!
ja limpei ate cache hahahao seu teste foi com apenas essas 2 opcoes nada mais? :o
-
o seu teste foi com apenas essas 2 opcoes nada mais?
Sim. Vou fazer denovo mais tarde e posto o resultado.