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 IDE:: Compilação Condicional

Conforme prometi anteriormente, começarei a escrever à respeito de detalhes interessantes sobre o Protheus e que muita gente desconhece. Utilizarei como exemplo, desse e dos próximos artigos, o código fonte do game sudoku (outros, se necessário para o bom entendimento, poderão ser disponibilizados).

Hoje falarei sobre a compilação condicional no Protheus IDE e, de lambuja, mostrarei como se faz para adicionar a opção de "Compilação de Versão" ao "Totvs Development Studio" (nome bonitinho que inventaram na versão 10 para o nosso conhecidíssimo IDE).

Vamos ao que interessa. Como a maioria dos bons compiladores, o Protheus IDE possui o recurso de "Compilação Condicional" que nada mais é do que "diretivas/parâmetros" que são passadas ao pré-processador (sim, o Protheus tem um pré-processador) de forma a verificar se um determinado trecho do código irá fazer parte ou não, da compilação.

As diretivas de compilação condicional são semelhantes às do "clipper" e de outras linguagens no padrão xbase. As que são verificadas com mais freqüência, no Protheus, são aquelas relacionadas ao Tipo de Banco de Dados que será utilizado. Por exemplo:

#IFDEF TOP
//..Inclua esse trecho do código
#
ENDIF

Ou seja, o código entre #IFDEF#ENDIF só será, efetivamente compilado se a diretiva TOP estiver definida. No Protheus, a grande maioria das diretivas já estão embutidas no próprio IDE, que identifica qual o tipo de repositório em uso para defini-las.

As diretivas são interessantes e também são um ótimo recurso para o progamador Advpl que se bem utilizadas auxiliarão na depuração do código e/ou condicionarão a execução de um determinado trecho do programa de acordo com a sua definição ou não.

Por Exemplo, no programa u_sudoku.prg, em vários trechos do código existe a seguinte verificação:

#IFNDEF SODUKO_NO_CHANGE
//...
#
ENDIF

SODUKO_NO_CHANGE não é uma diretiva padrão do sistema mas uma definida pelo humilde programador que vos escreve. Ela foi usada para auxiliar-me a depurar o jogo. Ou seja, quando ela está definida, não é possível joga-lo efetivamente, apenas ver os valores de cada jogo.

Pergunta: Se SODUKO_NO_CHANGE não é uma diretiva do sistema, como Defini-la?

Existem duas formas, uma seria: #DEFINE SODUKO_NO_CHANGE e outra através de parâmetro do compilador /D ex.: /DSODUKO_NO_CHANGE. Na prática prefiro a segunda forma.

A imagem abaixo mostra como definir uma diretiva de compilação condicional do Protheus IDE.


A diretiva é definida na opção "Parâmetros".

As diretivas poderão ser verificadas como:

#IFDEF
//se for para testar se a
Diretiva está definida
#
ENDIF

ou

#IFNDEF

//pra verificar se a
Diretiva não está definida.
#
ENDIF


(Clique na imagem para amplia-la)

Observe que na imagem acima tem a opção "Compilar Versão" e que no seu Protheus IDE essa opção, provavelmente, não aparece. Para disponibiliza-la proceda da seguinte forma:

Feche o IDE, abra o arquivo totvsdevstudio.ini (para a versão 10 do Protheus IDE) ou, se estiver utilizando versão anterior do Protheus IDE (mp8,ap7,etc) o mp8ide.ini ou ap?ide.ini e inclua a seguinte chave:

[Version Generator Window]
Created=1
Left=0
Top=0
Height=159
Width=1272
Visible=1
Dock Host Site=DockSiteBottom
Dock Orientation=0
File
Name=

Salve o arquivo .ini e reabra o IDE. A aba "Compilar Versão" estará disponível. Mas para que serve essa configuração? Para a organização da forma de trabalho. Para que ter um único projeto (.prj) com todos as customizações, de todos os módulos, se podemos organizá-los por módulo (como no exemplo da imagem acima). E agora, já organizei os programas em seus respectivos projetos, como compilá-los todos de uma vez. É aí que entra essa opção. Selecione todos os projetos que deseja compilar e compile-os em uma só tacada. Essa opção permite gravar um "script" de compilação que possui a extensão .ver (de versão, acredito eu).

Comentários

Postagens mais visitadas