Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash:export-variable-security,echo$var | prog,clear$var?_Bash_Security_Passwords - Fatal编程技术网

bash:export-variable-security,echo$var | prog,clear$var?

bash:export-variable-security,echo$var | prog,clear$var?,bash,security,passwords,Bash,Security,Passwords,我正在寻找一种方法,以确保我一直在工作的一些程序。 一些人设置或更改了用户密码,希望现在就创建一个登录GUI,并意识到我编写软件是多么不安全 我正在使用gtkdialog作为我的前端。这使用GTK+ 在gui中输入的密码在屏幕上是隐藏的,并且密码被导出为变量 该变量可能无法作为解决方案的一部分导出(我可以解决这个问题,但如果不必这样做会更好) 请提供在gtkdialog中安全处理密码和/或在bash脚本中安全处理密码的方法 “解锁”用法示例: 更改密码的示例: password="old pas

我正在寻找一种方法,以确保我一直在工作的一些程序。 一些人设置或更改了用户密码,希望现在就创建一个登录GUI,并意识到我编写软件是多么不安全

我正在使用gtkdialog作为我的前端。这使用GTK+

在gui中输入的密码在屏幕上是隐藏的,并且密码被导出为变量

该变量可能无法作为解决方案的一部分导出(我可以解决这个问题,但如果不必这样做会更好)

请提供在gtkdialog中安全处理密码和/或在bash脚本中安全处理密码的方法

“解锁”用法示例:

更改密码的示例:

password="old pass"
new_pass="new pass"
echo "$password\n$new_pass\n$new_pass" | passwd

非常感谢您的帮助。

不一定像您希望的那样安全,但有两种选择:

完成时取消设置var

取消设置$password

或者,如果$password仅在on函数内部使用,则可以使用本地变量

本地$password=“pass”

此外,您不希望使用
export
设置安全变量。。。这将使他们成为一个外壳变量

password=“pass”


你真的需要首先处理密码吗
sudo
可以配置为允许特定用户或组在不使用密码的情况下运行特定命令。当然,在您的场景中,这是否可行取决于应该运行什么命令。在我的情况下,这是不可行的,这也是为了减少可能的依赖性问题。另外,为用户编写更改自己密码的程序也是由于缺少其他选项。这是我自己所能想到的。这就是我来这里要求更好的东西的原因。我非常确信,无论我做什么,使用gtkdialog设置变量都是不安全的。
password="old pass"
new_pass="new pass"
echo "$password\n$new_pass\n$new_pass" | passwd