gpt4 book ai didi

linux - 有没有办法让 rlwrap 自动删除历史文件?

转载 作者:太空宇宙 更新时间:2023-11-04 10:49:24 25 4
gpt4 key购买 nike

我正在使用 rlwrap 将命令历史记录提供给 linux 服务器上的 sqlplus/rman/etc。我可以看到正在生成的命令历史文件,例如 .sqlplus_history,因为这些是可能包含密码的纯文本文件,例如如果用户在 sqlplus 中输入“连接用户名/密码”,则无限期保留它们存在安全风险。

是否有比定期删除日志的某种 cron 作业更简单的方法?

我希望某些类型的关键字会触发删除日志,例如如果读取“exit”或“quit”命令,用户离开 sqlplus 并删除 .sqlplus_history 日志。这样的事情可能吗?

最佳答案

rlwrap 有很多选项可以让命令行不在历史列表中(因此也不在历史文件中),尽管不完全按照你描述的方式(我觉得这没什么用) )

  • rlwrap --forget-matching connect sqlplus 不会记住任何包含字符串 connect
  • 的输入行
  • 指定一个负数的历史大小,比如rlwrap --histsize -3000 会将历史文件视为只读(密码在历史中仍然可见,但不会写入文件)
  • 使用 CTRL+O 输入一行将使该特定行不在历史列表中。 (此操作可以重新绑定(bind)到另一个键,请参阅联机帮助页)

对于一个非常奇特的密码检查器,可以像这样编写一个过滤器 censor_passwords:

#!/usr/bin/env perl

use lib ($ENV{RLWRAP_FILTERDIR} or ".");
use RlwrapFilter;
use strict;

my $filter = new RlwrapFilter;

$filter -> help_text("This filter removes the password from SQL 'identified by' clauses\n");

$filter -> history_handler(sub { s/(identified\s+by\s+)(\S+)/$1 xXxXxXxX/ig; $_});

$filter -> run;

.. 然后像 rlwrap -z censor_passwords sqlplus 一样使用它。

任何包含 IDENTIFIED BY yd6e7#te6 的输入都会被记住为 IDENTIFIED BY xXxXxXxX

关于linux - 有没有办法让 rlwrap 自动删除历史文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31659680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com