Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: Autenticação 2FA para Usuário Root no WSL

--- # naldodj-wsl-2FA ## Autenticação 2FA para Usuário Root no WSL ### Introdução O Windows Subsystem for Linux (WSL) é uma ferramenta poderosa que permite aos desenvolvedores executar um ambiente Linux diretamente no Windows. No entanto, a segurança é uma preocupação importante, especialmente quando se trata de acessar o usuário root. Neste post, vamos mostrar como configurar a autenticação de dois fatores (2FA) para o usuário root ao acessar o WSL, garantindo uma camada adicional de segurança. ### Objetivo Vamos configurar um script de login que valida a senha do root e usa autenticação 2FA baseada em Time-based One-Time Password (TOTP), usando ferramentas comuns como `openssl`, `oathtool`, e `perl`. ### Passo 1: Instalar as Ferramentas Necessárias Primeiro, precisamos garantir que temos todas as ferramentas necessárias instaladas. Isso inclui `openssl`, `oathtool`, e `perl`. ```bash sudo apt-get update sudo apt-get install openssl oathtool perl ``` Para os scripts em Lua.

Protheus :: Advpl :: FINR530 :: PE F530QRY :: Eu acho que vi um gatinho!

 

Cliente gostaria que os Bancos/Agências/Contas usadas no Cadastro de Funcionários não aparecessem no Relatório de Movimento Financeiro Diário (FINR530). Sugeri-lhe:

  1. Deixar esses registros como Bloqueados (A6_BLOCKED=’1’); e
  2. Incluir um Filtro, na emissão do relatório, para só emitir os Bancos em que o Campo A6_BLOCKED seja diferente de ‘1’

Mas, considerando que o Filtro salvo não é restaurado automaticamente, dependendo da ação do usuário, perguntou se teria como isso ser feito automaticamente pelo sistema. A resposta, sim, poderemos implementar o Ponto de Entrada F530QRY (Normalmente utilizado para Filtrar os Registros da Tabela SE5) para esse fim.

Mas, aí vem a surpresa! Ao implementar o PE F530QRY quem aparece “Frajola”:

TOTVS Build 7.00.101202A-20110330
ERRO THREAD ([5456], <user>, <computer>)   09/12/2011   12:41:51
variable does not exist NINDEX on FA530IMP(FINR530.PRX) 06/07/2010 15:47:56 line : 278

Mas porque “Frajola” resolve aparecer logo após a implementação do Ponto de Entrada? Vamos analisar o código:

image

Irá verificar se o Ponto de Entrada foi compilado e atribui valor inicial a cQueryADD que será utilizado na Complementação do “Filtro”

image

Se a Função Referente ao Ponto de Entrada foi encontrada e se o tipo da variável cQueryAdd for Caractere (e sempre vai ser), executa o “Ponto de Entrada” armazenando o retorno em cQueryADD (na realidade isso deveria estar a 2 linhas acima), mas, até aqui tudo bem. Frajola resolve aparecer quando:

image

O sistema tenta usar nIndex. nIndex não foi formalmente declarada em nenhum ponto do sistema, sua atribuição ocorre (ou ocorria) logo apos a chamada a IndRegua de forma a obter o retorno de RetIndex() que se TOPCONN será 0, caso contrário, o último índice da tabela SE5. Ocorre que, ou a “Vovó” deixou nIndex “de castigo”, restringindo-lhe àlguma condição, ou mandou-lhe passear e…

image

quando o sistema tenta usá-la… (@#&$*!) crash....

TOTVS Build 7.00.101202A-20110330
ERRO THREAD ([5456], <user>, <computer>) 09/12/2011 12:41:51
variable does not exist NINDEX on FA530IMP(FINR530.PRX) 06/07/2010 15:47:56 line : 278

É um erro com “Solução/Contorno” (paliativo é claro). Ei-la: Usaremos _SetNamedPrvt() para fazer o trabalho do programador, e restituir nIndex onde de direito.

image

“Piu-Piu agradece”.

[]s

иαldσ dj

Comentários

  1. Naldo, por que usar _SetNamedPrvt ao invés de private ou public?

    ResponderExcluir
  2. Pelo simples fato de inserir a variável em seu contexto. Public iria usar um espaço desnecessário em memória e Private não atenderia à solução pela limitação de escopo. Já _SetNamedPrvt() (salve salve Weber por tê-la criado) irá "por a variável em seu devido lugar" e quando FINR350 "deixar de existir" levará com ele a variável.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas