#!/bin/bash
read -p " Enter Username :" USERNAME
read -p " Enter Password :" -s PASSWORD
ps -ef 没有显示任何详细信息,它会隐藏密码。但是,从信息安全的角度来看,这真的是一种安全的方法吗?
提前致谢!
答案 0 :(得分:2)
是的,只要会话使用SSH等安全传输或本地传输,就应该是安全的。它有助于read
是一个shell内置命令。
正在运行的bash会话中的变量值不会导出到bash进程本身的环境中。
要注意的一件事:
如果您export
PASSWORD
环境变量然后启动外部命令,则会公开变量的内容(例如ps e
可见)。
你可以这样测试:
read -s PASSWORD
export PASSWORD
sleep 999
搜索"睡眠"过程,你会看到PASSWORD及其价值。 环境变量不是将数据传递给进程的保密方式。
如果要处理存储在环境变量中的机密数据,请确保坚持使用shell内置命令,例如echo
。