“history -c”在脚本中调用时不起作用?

飓风之拳

我编写了一个 bash 脚本来调用一个 Python 脚本,该脚本使用 AES 加密私有数据,将文件路径和 256 位密码作为唯一参数。加密完成后,它会清除历史记录,这样密码就不会放在那里,以防我让终端打开。它看起来像这样:

#!/bin/bash

python aesencrypt.py "$1" "$2"
history -c
echo "" > ~/.bash_history

~/.bash_history文件被清除就好了,但是如果我history在运行此脚本后运行,那么我的所有历史记录仍然存在(直到我退出终端)。有什么我在这里想念的吗?

查尔斯·达菲

不要试图清除历史记录——尽管这是在命令行上传递密码暴露它的最明显方式,但该操作给人一种虚假的安全感:在命令行上给出的密码很容易通过其他进程捕获即使根本不涉及历史记录,也可以在同一台机器上运行(即使在不受信任的帐户下!)。

此外,正如您所注意到的,一个 shell 只能修改它自己的内存状态,而不是启动它的单独进程的内存状态(它甚至可能不是同一个 shell,或者根本不是一个 shell!)。


相反,修改 Python 程序的调用约定以直接从 TTY(如 SSH)或环境中读取密码。对于后者,用法可能如下所示:

# assumes you renamed aesencrypt.py to aesencrypt, ran chmod +x, and gave a valid shebang
password="somePassword" aesencrypt outFile

...并且您希望修改 Python 脚本以执行以下操作:

#!/usr/bin/env python
import os, sys

filename = sys.argv[1]
password = os.environ['password']

# ...put the rest of your logic here.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

history.back()在iOS的Safari中不起作用

来自分类Dev

history.pushState在控制器中不起作用

来自分类Dev

history.back()在iOS的Safari中不起作用

来自分类Dev

从BackStack删除活动(Flag_Activity_no_history)不起作用

来自分类Dev

重定向不起作用,而{this.props.history}却可以

来自分类Dev

Parse.history.start似乎不起作用

来自分类Dev

history.back在使用Cordova的iOS上不起作用

来自分类Dev

window.history.back(); 在Sharepoint页面布局中不起作用

来自分类Dev

从cron调用时脚本不起作用

来自分类Dev

从html中的php标签调用时,php脚本不起作用

来自分类Dev

从CLI调用时,脚本中的Trap命令有效,但在PBS作业中使用时,则不起作用

来自分类Dev

History.push在BrowserRouter上起作用,但在Router上不起作用

来自分类Dev

在python中调用时balance()方法不起作用

来自分类Dev

从类中调用时,清除主机不起作用

来自分类Dev

Visual C++:从 DLL 调用时 XGBoost 不起作用

来自分类Dev

从SQL Server调用时Eternal File.Exist CLR C#不起作用,但在C#中起作用

来自分类Dev

从bash脚本调用时,为什么此R脚本不起作用?

来自分类Dev

从NSObject调用时,DBRestClient不起作用

来自分类Dev

从BroadcastReceiver调用时,startActivity不起作用

来自分类Dev

从NSObject调用时,DBRestClient不起作用

来自分类Dev

从systemd调用时ssh不起作用

来自分类Dev

django-simple-history,没有历史记录的保存不起作用

来自分类Dev

为什么当查询本身起作用时,php脚本中的该查询不起作用?

来自分类Dev

从jenkins调用时Tomcat启动脚本不起作用

来自分类Dev

陷阱作为脚本调用时不起作用;但适用于IRB

来自分类Dev

从Jenkins Pipeline调用时如果条件不起作用的Bash脚本

来自分类Dev

从Jenkins Pipeline调用时如果条件不起作用的Bash脚本

来自分类Dev

在脚本内部调用时,为什么ulimit -n不起作用?

来自分类Dev

脚本手动运行,但在 Cron 调用时不起作用

Related 相关文章

  1. 1

    history.back()在iOS的Safari中不起作用

  2. 2

    history.pushState在控制器中不起作用

  3. 3

    history.back()在iOS的Safari中不起作用

  4. 4

    从BackStack删除活动(Flag_Activity_no_history)不起作用

  5. 5

    重定向不起作用,而{this.props.history}却可以

  6. 6

    Parse.history.start似乎不起作用

  7. 7

    history.back在使用Cordova的iOS上不起作用

  8. 8

    window.history.back(); 在Sharepoint页面布局中不起作用

  9. 9

    从cron调用时脚本不起作用

  10. 10

    从html中的php标签调用时,php脚本不起作用

  11. 11

    从CLI调用时,脚本中的Trap命令有效,但在PBS作业中使用时,则不起作用

  12. 12

    History.push在BrowserRouter上起作用,但在Router上不起作用

  13. 13

    在python中调用时balance()方法不起作用

  14. 14

    从类中调用时,清除主机不起作用

  15. 15

    Visual C++:从 DLL 调用时 XGBoost 不起作用

  16. 16

    从SQL Server调用时Eternal File.Exist CLR C#不起作用,但在C#中起作用

  17. 17

    从bash脚本调用时,为什么此R脚本不起作用?

  18. 18

    从NSObject调用时,DBRestClient不起作用

  19. 19

    从BroadcastReceiver调用时,startActivity不起作用

  20. 20

    从NSObject调用时,DBRestClient不起作用

  21. 21

    从systemd调用时ssh不起作用

  22. 22

    django-simple-history,没有历史记录的保存不起作用

  23. 23

    为什么当查询本身起作用时,php脚本中的该查询不起作用?

  24. 24

    从jenkins调用时Tomcat启动脚本不起作用

  25. 25

    陷阱作为脚本调用时不起作用;但适用于IRB

  26. 26

    从Jenkins Pipeline调用时如果条件不起作用的Bash脚本

  27. 27

    从Jenkins Pipeline调用时如果条件不起作用的Bash脚本

  28. 28

    在脚本内部调用时,为什么ulimit -n不起作用?

  29. 29

    脚本手动运行,但在 Cron 调用时不起作用

热门标签

归档