Tag Archives: shell

Gerando senhas aleatorias em posix shell script

Cenário

Imagine que você tem que criar uma senha aleatória para um serviço ou para alguma pessoa.

Normalmente, eu usaria uma dica muito boa mesmo dada pelo megalovax Piter Punk, em seu site pessoal.

Só que, se vocês poderem constatar, o programa não usa comandos posix, fazendo com que ele não funcione em todos os lugares. Pensando nisso, quebrei a cabeça uns 5 mins. e resolvi resolver esse pequeno problema.

Solução

Bom, resolvi aqui com isso:

tr -c -d '[:graph:]' < /dev/urandom | dd count=8 bs=1 2>/dev/null  ; echo

Qual as diferencias? Todos os comando acima podem ser encontrados facilmente em qualquer plataforma, principalmente em vários Unix por ai.

Além do mais, editei o meu .bashrc para conter essa definição para facilitar minha vida e gerar as senhas com uma quantidade arbitraria de caracteres:

gerar_senha(){
	qtd_letras=8
	if [ "$1" ] ; then
		qtd_letras=$1
	fi

	LC_ALL=en tr -c -d '[:graph:]' < /dev/urandom | dd count="${qtd_letras}" bs=1 2>/dev/null  ; echo
}

No caso, usei o LC_ALL=en porque gosto de usar senhas com esse locale, além de fazer com que o locale não de erro no programa.

Advertisements

Minicurso na semana da computação

Semana da computação

Foi realizado essa semana a primeira semana da computação na UFAL.

Acho isso uma grande iniciativa, o curso de computação precisa de mais eventos como esse que adicionam discussões interessantes e mais assuntos a vida dos estudantes do IC. Apoio muito essas iniciativas a acho muito importante, parabéns aos organizadores!
Infelizmente teve algumas coisas que eu queria ver e não pude :p. Seja por estar preparando o meu minicurso de bash script, ou porque eu o estava “ministrando”. Bom, fazer o que …. C’est la vie.

Falando nisso….

Bom, falando nisso, já devem saber que eu apresentei um minicurso na semana da computação convidado pelo pessoal, só tenho a dizer muito obrigado pela oportunidade.

Como prometi, eu disponibilizei um pacote com toda a apresentação aqui. Para quem não quer baixar 11M, aqui tem a primeira parte da apresentação. E para quem quer a segunda parte, ela esta aqui. Bom proveito :D.

Só tenho a dizer que eu estou sempre aqui para qualquer duvida. Qualquer coisa sempre podem me mandar e-mail ou me contatar por qualquer outro meio.


Obtendo informações do sistema de forma portavel e facil com o getent

Cenário

Imagine que ter acesso a informações do sistema, como grupos, usuários,hostnames, etc…

Cada informação dessa pode ser obtida de forma diferente em sistemas diferentes, podendo se tornar um inferno para o programador, por exemplo, procurar os usuários em uma base de dados do sistema, e depois descobrir que os usuários estão em duas bases de dados diferentes.

Para esses e outros casos, quem programa em shell script tem uma boa alternativa chamada getent. Com o getent, você acessar entradas que estão no banco de dados administrativo do sistema sem depender de qual banco de dados o sistema esta usando.

Bom, e como usamos? Muito simples, o getent é usado da seguinte forma:

getent [Base de Dados] [chave]

Explicando:

Base de Dados: é a base de dados que você quer acessar :p. Se você esta procurando por algum usuário, use o “passwd“. Se você esta procurando pelo nome do host use “ahost“. Algumas das bases que o getent pode suportar são:

ahosts ahostsv4 ahostsv6 aliases ethers group hosts netgroup networks passwd protocols rpc services shadow

chave: Algo do bando de dados. Isso, como vocês podem perceber, varia de banco de dados a banco de dados. Por exemplo, a chave usada no banco de dados do passwd é um usuário. Um usuário também é usado no “shadow“, que fornece as senhas criptografadas do sistema. Mas, no “ahost” que mostra os nomes de cada ip, seria um ip a chave do banco de dados.

A chave filtra o banco de dados, deixando somente o que você precisa para trabalhar. Se você omite a chave, todo o banco de dados é mostrado. Tenha muito cuidado para saber onde você precisa de todo o banco de dados ou apenas uma entrada, para não ficar dando greps a toa no programa.


Livro: programação shell linux

Acabei de ler o livro: Programação Shell linux, do vovô do shell script. Eu acabei de ver a 5ª edição, só para esclarecer :p.

Bom, só tenho a dizer que o filme é bem legal. Explica tudo sobre shell script, e ainda de forma bem legal. Veja que eu li a 5ª edição, e já esta na 7ª edição ;).

Explica tudo mesmo, do básico, como variáveis, condicionais e comandos básicos, até coisas muito mais avançadas, como parâmetros, pipes e programas mais avançados.

Só tenho a dizer que gostei muito do livro, e recomendo. Posso dizer que o livro, junto com o livro do Aurélio(Esse eu vou falar depois…), é um tratado final sobre como programar em shell script.

 

Bom, fica ai a dica. Recomendo, e quem quiser eu tenho ;).


%d bloggers like this: