Script para autenticar usuarios [RESOLVIDO]

1. Script para autenticar usuarios [RESOLVIDO]

Célio Junior
celiomagalhaesjr

(usa Ubuntu)

Enviado em 16/08/2017 - 11:59h

Pensei em um script para autenticar o proxy.


#!/bin/bash
read -p "Nome do usuário: " nome
read -p "Senha: " pass
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
htpasswd -i /etc/squid3/passwd $nome $pass



Dessa forma nao funciona, existe alguma forma?

Desde ja agradeco...


  


2. MELHOR RESPOSTA

Patrick Costa da Silva
patrickpcs

(usa Nenhuma)

Enviado em 16/08/2017 - 13:47h

Já tentou aspas duplas na ultima linha do seu script? Se a senha da pessoa conter espaçamentos pode levar a uma mal interpretação pelo comando.

#!/bin/bash
read -p "Nome do usuário: " nome
read -p "Senha: " pass
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
htpasswd -i /etc/squid3/passwd "$nome" "$pass"


Não sei ao certo o que está sendo feito na linha 4 (iniciada com "pass=$")

Uma coisa interessante de se usar no comando read é o parametro -s (secret--silent)
Veja o que diz o help read (se usar o read integrado do bash

-s do not echo input coming from a terminal

É ideal para ler senhas uma vez que não exibe na tela o que está sendo escrito..
Então eu colocaria da seguinte forma só por boa prática;
read -p "Nome do usuário: " nome
read -sp "Senha: " pass

Parece que temos um erro de sintaxe aqui. Se você ler atentamente ele diz que a opção -i é usada para receber a senha pelo stdin.
Mas você está informando a senha pela linha de comando, então deverias usar como está explicado no próprio exemplo a opção -b.


-b Use the password from the command line rather than prompting for it.


Se você quer muito usar a opção -i, então poderíamos usar o echo por exemplo;

echo "senhadefulano" | htpasswd -i .................


Outra coisa que ainda me perturba são as seguintes linhas;

read -p "Senha: " pass
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)

Tenho uma impressão de que há erros aqui. Parece que vc está se referindo a uma variável errada. Ao meu ver não importa o valor que for informado como senha pelo andamento dessas duas linhas. Uma hora você está trabalhando com a variável "pass" e outra hora com a variável "password". É ignorância minha? Estou em dúvida.


3. Re: Script para autenticar usuarios [RESOLVIDO]

Célio Junior
celiomagalhaesjr

(usa Ubuntu)

Enviado em 16/08/2017 - 15:56h


É ideal para ler senhas uma vez que não exibe na tela o que está sendo escrito..
Então eu colocaria da seguinte forma só por boa prática;
read -p "Nome do usuário: " nome
read -sp "Senha: " pass



bash auth
Nome do usuário: teste
Senha: teste
Usage:
htpasswd [-cimBdpsDv] [-C cost] passwordfile username
htpasswd -b[cmBdpsDv] [-C cost] passwordfile username password

htpasswd -n[imBdps] [-C cost] username
htpasswd -nb[mBdps] [-C cost] username password
-c Create a new file.
-n Don't update file; display results on stdout.
-b Use the password from the command line rather than prompting for it.
-i Read password from stdin without verification (for script usage).
-m Force MD5 encryption of the password (default).
-B Force bcrypt encryption of the password (very secure).
-C Set the computing time used for the bcrypt algorithm
(higher is more secure but slower, default: 5, valid: 4 to 31).
-d Force CRYPT encryption of the password (8 chars max, insecure).
-s Force SHA encryption of the password (insecure).
-p Do not encrypt the password (plaintext, insecure).
-D Delete the specified user.
-v Verify password for the specified user.
On other systems than Windows and NetWare the '-p' flag will probably not work.
The SHA algorithm does not use a salt and is less secure than the MD5 algorithm.


Esse é o erro que da ao executar...
No caso a questao de ocultar a senha, nao é necessario pois isso é para um conjunto que estou montando


4. Re: Script para autenticar usuarios

Patrick Costa da Silva
patrickpcs

(usa Nenhuma)

Enviado em 16/08/2017 - 17:18h

Parece que temos um erro de sintaxe aqui. Se você ler atentamente ele diz que a opção -i é usada para receber a senha pelo stdin.
Mas você está informando a senha pela linha de comando, então deverias usar como está explicado no próprio exemplo a opção -b.


-b Use the password from the command line rather than prompting for it.


Se você quer muito usar a opção -i, então poderíamos usar o echo por exemplo;

echo "senhadefulano" | htpasswd -i .................


Outra coisa que ainda me perturba são as seguintes linhas;

read -p "Senha: " pass
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)

Tenho uma impressão de que há erros aqui. Parece que vc está se referindo a uma variável errada. Ao meu ver não importa o valor que for informado como senha pelo andamento dessas duas linhas. Uma hora você está trabalhando com a variável "pass" e outra hora com a variável "password". É ignorância minha? Estou em dúvida.



5. Re: Script para autenticar usuarios [RESOLVIDO]

Célio Junior
celiomagalhaesjr

(usa Ubuntu)

Enviado em 16/08/2017 - 19:21h

patrickpcs escreveu:

Parece que temos um erro de sintaxe aqui. Se você ler atentamente ele diz que a opção -i é usada para receber a senha pelo stdin.
Mas você está informando a senha pela linha de comando, então deverias usar como está explicado no próprio exemplo a opção -b.


-b Use the password from the command line rather than prompting for it.


Se você quer muito usar a opção -i, então poderíamos usar o echo por exemplo;

echo "senhadefulano" | htpasswd -i .................


Outra coisa que ainda me perturba são as seguintes linhas;

read -p "Senha: " pass
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)

Tenho uma impressão de que há erros aqui. Parece que vc está se referindo a uma variável errada. Ao meu ver não importa o valor que for informado como senha pelo andamento dessas duas linhas. Uma hora você está trabalhando com a variável "pass" e outra hora com a variável "password". É ignorância minha? Estou em dúvida.



Rapido e rasteiro , ficou perfeito com o uso do "echo + pipe" , quanto ao "pass=..." mais um erro de logica meu, usei o mesmo que uso para criar usuarios...







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts