Armazena senha numa variavel com read [RESOLVIDO]

1. Armazena senha numa variavel com read [RESOLVIDO]

Douglas dos Santos
error13

(usa Ubuntu)

Enviado em 20/02/2017 - 11:24h

tenho um script que criei para mapear algumas unidades da rede porem coloquei minha senha nele e nao gostaria que fica-se assim mais nao consigo fazer com o que o script leia uma variavel com o read, tipo:


#!/bin/bash
read -s -p "Password: " pass

# base de dados
if mount | grep -q /mnt/base_dados; then
umount /mnt/base_dados
fi
if [ ! -d "/mnt/base_dados" ]; then
mkdir /mnt/base_dados
fi
mount -t cifs //servidor/Base_Dados /mnt/base_dados -o username=tux,password=$pass,dir_mode=0777,file_mode=0777

# programas
if mount | grep -q /mnt/programas; then
umount /mnt/programas
fi
if [ ! -d "/mnt/programas" ]; then
mkdir /mnt/programas
fi
mount -t cifs //servidor/programas /mnt/programas -o username=tux,password=$pass,dir_mode=0777,file_mode=0777



alguem pode me ajudar nisso?


  


2. Re: Armazena senha numa variavel com read

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 20/02/2017 - 11:48h

error13 escreveu:

tenho um script que criei para mapear algumas unidades da rede porem coloquei minha senha nele e nao gostaria que fica-se assim mais nao consigo fazer com o que o script leia uma variavel com o read, tipo:


#!/bin/bash
password=read

#pasta pessoal
if mount | grep -q /mnt/tux; then
umount /mnt/tux
fi
if [ ! -d "/mnt/tux" ]; then
mkdir /mnt/tux
fi
mount -t cifs //server/tux /mnt/tux -o username=tux,password=$password,dir_mode=0777,file_mode=0777



alguem pode me ajudar nisso?


Veja um exemplo:


paulo@notebook:~$ read senha
ss
paulo@notebook:~$ echo $senha
ss
paulo@notebook:~$




Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA
Oracle Certified Associate, Java SE Programmer - OCA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/


3. Re: Armazena senha numa variavel com read [RESOLVIDO]

Douglas dos Santos
error13

(usa Ubuntu)

Enviado em 20/02/2017 - 12:06h

[quote]p4ulodi4s escreveu:

Veja um exemplo:


paulo@notebook:~$ read senha
ss
paulo@notebook:~$ echo $senha
ss
paulo@notebook:~$


Paulo olha só o erro que da quando uso a variavel:
Password: mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

mais nao é permissao negada no compartilhamento pq se eu coloco a senha direto sem usar a variavel ela vai!


4. Re: Armazena senha numa variavel com read

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 20/02/2017 - 14:54h

Quando você faz echo $password é imprimida a senha correta?

tente recuperar a senha protegendo a string com aspas...

paulo@notebook:~$ read senha
qwe
paulo@notebook:~$ echo "$senha"
qwe
paulo@notebook:~$


Senão conseguir, poste como ficou o código depois da alteração.


Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA
Oracle Certified Associate, Java SE Programmer - OCA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/


5. Re: Armazena senha numa variavel com read [RESOLVIDO]

Douglas dos Santos
error13

(usa Ubuntu)

Enviado em 20/02/2017 - 15:08h

p4ulodi4s escreveu:

Quando você faz echo $password é imprimida a senha correta?

tente recuperar a senha protegendo a string com aspas...

paulo@notebook:~$ read senha
qwe
paulo@notebook:~$ echo "$senha"
qwe
paulo@notebook:~$


Senão conseguir, poste como ficou o código depois da alteração.


Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA
Oracle Certified Associate, Java SE Programmer - OCA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/



descubri aqui com camarada onde estava errando, o usuário necessitava de uma variável, coloquei a variável fixa e funcionou!
segue como ficou:


#!/bin/bash
user=tux
read -s -p "digite sua senha: " pass

# base de dados
if mount | grep -q /mnt/base_dados; then
umount /mnt/base_dados
fi
if [ ! -d "/mnt/base_dados" ]; then
mkdir /mnt/base_dados
fi
mount -t cifs //servidor/Base_Dados /mnt/base_dados -o username=$user,password=$pass,dir_mode=0777,file_mode=0777

# programas
if mount | grep -q /mnt/programas; then
umount /mnt/programas
fi
if [ ! -d "/mnt/programas" ]; then
mkdir /mnt/programas
fi
mount -t cifs //servidor/programas /mnt/programas -o username=$user,password=$pass,dir_mode=0777,file_mode=0777
df -h | grep serv*



Quando estava fixando o usuário ele apresentava o erro, quando coloquei os dois na variável funcionou!







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts