487 Views
Tempo de leitura: 1 Minuto
Essa dica é para o amigo Sysadmin/Sysops/Devops/Padeiro/Borracheiro/etc que pretende automatizar a criação de senhas via command line.
O exemplo a seguir pode ser adaptado para criação de senhas via Shell Script. É um single line. Vou explicar passo a passo.
Primeiro, utilizamos o /dev/urandom. Ele nos dará os valores variáveis com os quais iremos trabalhar.
Vamos utilizar o comando “tr” com parâmetros “-dc” seguido de alguns caracteres que queremos na senha.
Em seguida utilizaremos o comando “fold” para parsear a quantidade de carecteres por linha.
Por fim, utilizaremos o comando “head” para obter apenas algumas linhas.
Vejamos um exemplo:
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 20 | head -n5
Neste exemplo teremos uma saída similar a esta:
[wil@valhalla ~]$ cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 20 | head -n5 K3sTWfunzlpf8apeVI6m x2tV9vEbLAR6Sj5MuanZ iIpckZ6fYJMxfhKHo0DJ rd2W6TkzYEqFABGrGXuI qEQouvvWoEOOF5ZcGGRa
Ou seja, são 5 senhas, uma por linha, com 20 caracteres alfanuméricos.
Podemos reforçar essa senha acrescentando alguns caracteres especiais. Vamos incluir os caracteres “_!@#$%&*+“. O comando ficará assim:
cat /dev/urandom | tr -dc 'a-zA-Z0-9-_!@#$%&*+' | fold -w 20 | head -n5
Exemplo da saída do comando:
[wil@valhalla ~]$ cat /dev/urandom | tr -dc 'a-zA-Z0-9-_!@#$%&*+' | fold -w 20 | head -n5 K&Q6sumHhnO0SKyScwMW yi$kdEFRJ5rW%0GBbOeD %mTD9@@vvpO-i5tITgbR 4+e_G@cnjaSdrBUtAq7d *PjrB#vwdnSKUFPMcss4
Obviamente, para reduzir ou aumentar a quantidade de caracteres por senha ou a quantidade de linhas basta alterar os valores do comando “fold” e/ou do comando “head”, respectivamente.
Esse é um exemplo simples. Pode-se fazer isso de outras formas. Esta é uma forma que funciona bem pra mim.
Abraços!