[shell-script] Asteriscos ao digitar senha
Olá pessoal, Existe alguma forma de substituir uma senha digitada por asteriscos no momento da leitura? Tenho lido senhas do modo abaixo, porém gostaria de melhorá-lo no sentido de que o usuário possa ver quantos caracteres digitou pelo número de asteriscos e se errou na quantidade saiba quando parar de pressionar o backspace. echo "Informe a senha: [ ]" echo "\033[1;20H\c" # posicionamento no campo stty -echo read pass stty echo Obrigado! Rodrigo
Re: [shell-script] Asteriscos ao digitar senha
Bom.. escrevendo assim sem mta paciencia pra por em script e tal, isso pode ajudar vc a montar a ideia: $ unset PASS KEY; while [ "$KEY" != "exit" ]; do read -sn1 pass; if [ "$(tr '\n' '@' <<< $pass)" != "@" ] && [ "$(cat -vet <<< $pass)" != "^H" ]; then PASS=${PASS}${pass}; echo -n '*'; else KEY=exit; fi; done Eu concordo q ta feio, mas eu nunca fui de escreve codigo bunito :) Ai so falta tu adicionar algo pra limpar o backspace (pode usar um echo -en '\b' por exemplo) e tirar o ultimo valor da variavel com: echo -en $PASS'\b' ACho que da pra montar com essas ideias... Flávio do Carmo Júnior On Nov 13, 2007 10:54 AM, Info Suporte - Rodrigo Nery <[EMAIL PROTECTED]> wrote: > > > > > > > > Olá pessoal, > > Existe alguma forma de substituir uma senha digitada por asteriscos > no momento da leitura? Tenho lido senhas do modo abaixo, porém gostaria de > melhorá-lo no sentido de que o usuário possa ver quantos caracteres digitou > pelo número de asteriscos e se errou na quantidade saiba quando parar de > pressionar o backspace. > > echo "Informe a senha: [ ]" > echo "\033[1;20H\c" # posicionamento no campo > stty -echo > read pass > stty echo > > Obrigado! > Rodrigo >
[shell-script] script para proxy
Certa vez publiquei um script para configuração de proxy, gostaria de uma otimização para que o script passe a ter um menu, usando case 1) configurar o proxy (se estiver configurado mostrar dados) 2) zerar configuração do proxy 3) atualizar lista de pacotes Obs: a idéia de zerar as configurações é porque às vezes atualizo máquinas aqui na empresa e quando os usuários levam os micros pra casa as configurações de proxy lhes atrapalham nas atualizações meu script atualmente esta assim: ### #!/bin/bash # script para ativar o apt via proxy # Criado: Sex 09/Fev/2007 hs 13:50 # Last Change: Ter 13 Nov 2007 07:18:23 BRT # Autor: Sergio Luiz Araujo Silva # # Serao editados os arquivos # /etc/profile # /etc/bashrc # /etc/apt/apt.conf # /etc/environment clear echo " " echo " ==" echo " Script para configuracao do apt via proxy" echo " ==" sleep 1 if [ "$(id -u)" != "0" ]; then echo echo " Este script precisa ser executado como root" echo " Faça login como root e tente novamente" sleep 3 clear exit 1 fi # estas linhas serão executadas caso o proxy já esteja configurado # === if cat /etc/profile | grep "\(http_proxy\|ftp_proxy\)" > /dev/null; then echo " O proxy ja esta configurado em /etc/profile" echo " Os valores sao: " echo cat /etc/profile | grep "\(http_proxy\|ftp_proxy\)" sleep 4 clear exit 1 fi # === # as linhas abaixo pegam os dados necessários para configurar o seu proxy echo read -p " O proxy necessita usuario e senha? [s/N] " proxysenha proxysenha=$(echo $proxysenha | tr [[:upper:]] [[:lower:]] | cut -c1) if [ "$proxysenha" = "s" ]; then read -p " Digite o nome do usuario para o proxy: " usuario read -p " Digite a senha para o proxy: " senha fi read -p " Digite o ip do servidor proxy: " ip_servidor read -p " Digite a porta do proxy: " porta echo if [ "$proxysenha" = "s" ]; then PROXY="${usuario}:[EMAIL PROTECTED]:${porta}" else PROXY="${ip_servidor}:${porta}" fi # configuração do /etc/profile cat <<-EOF >> /etc/profile http_proxy="http://${PROXY}"; ftp_proxy="http://${PROXY}"; export http_proxy ftp_proxy EOF # configuração do /etc/apt/apt.conf cat <<-EOF >> /etc/apt/apt.conf Acquire { HTTP::PROXY=${PROXY}; FTP::PROXY=${PROXY}; } EOF # Configuracao do /etc/environment cat <<-EOF >> /etc/environment http_proxy="http://${PROXY}"; ftp_proxy="http://${PROXY}"; Acquire { HTTP::PROXY=${PROXY}; FTP::PROXY=${PROXY}; } alias wget="wget -Y on" EOF ## se o proxy tiver senha o wget tem que ter senha também if [ "$proxysenha" = "s" ]; then # configuracao do wget cat <<-EOF >> /etc/bashrc alias wget="wget --proxy-user=${usuario} --proxy-passwd=${senha}" EOF fi echo echo " 1 - Feche o konsole atual" echo " 2 - Abra um novo terminal e" echo " 3 - Rode o apt-get update como root" echo sleep 2 exit # como exportar as variáveis para a seção atual?
[shell-script] apagar linhas de arquivo
Olá pessoal!! eu escrevo a seguintes linhas num script shell que cria usuários ftp num servidor web: echo ":80>" >> virtualhost.conf echo "DocumentRoot \""$diretorio"\"" >> virtualhost.conf echo "ServerName www."$site"..br" >> virtualhost.conf echo "" >> virtualhost.conf echo "#Desabilita modulos de TRACE e TRACK" >> virtualhost.conf echo "RewriteEngine On" >> virtualhost.conf echo "RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)" >> virtualhost.conf echo "RewriteRule .* - [F]" >> virtualhost.conf echo "RewriteRule ^(.*).asp$ /\$1.php [L,NC]" >> virtualhost.conf echo "" >> virtualhost.conf echo "" >> virtualhost.conf echo "/etc/init.d/httpd restart" tenho uma função no script que remove um usuário selecionado!! Como eu poderia remover as linhas inseridas? O problema é que as linhas que tem um padrão que eu utilizo são as seguintes echo "DocumentRoot \""$diretorio"\"" >> virtualhost.conf echo "ServerName www."$site"..br" >> virtualhost.conf Ass.: Douglas Brito Damalio Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]