Como colocar com segurança a senha digitada pelo usuário em um arquivo?

1

Existe alguma maneira de colocar a senha digitada pelo usuário em um arquivo (no Unix ou na expectativa).

read -s -p "enter password" input 
echo $input > file

O código acima é seguro?

Eu quero usar esse arquivo como uma entrada para senha no meu script de espera

Porque eu tentei isso e pude ver a senha mostrada na tela por apenas um segundo com esse código de expectativa.

set timeout 30
stty -echo
send_user -- "Password for $username :"
expect_user -re "(.*)\n"
set timeout .000000001
set timeout 30
send_user "\n"
set timeout 30
set password $expect_out(1,string)
send -- "$password\r"
    
por munish 12.03.2013 / 08:20

1 resposta

2

Quem conseguir ler o arquivo receberá a senha. Isso inclui root , o usuário que possui o arquivo (ou alguém personificando-o) e (dependendo das permissões) os usuários no grupo ou até mesmo todos. Qualquer pessoa que tenha alguns minutos a sós com a máquina pode reinicializá-la com um LiveCD / LiveUSB e acessar o arquivo. E uma lista longa de outras possibilidades. Não é não seguro. Talvez o suficiente para uso casual, mas não para qualquer coisa séria. E considere que "não acho que é crítico" não é suficiente, preciso pensar em qualquer possível cadeia de usos dos privilégios concedidos, outros sites usando a mesma senha (ou um construido da mesma forma), ...

    
por 12.03.2013 / 13:21