相关疑难解决方法(0)

如何确定哪个进程正在创建文件?

给定文件路径,我如何确定哪个进程创建它(和/或读/写)?

process monitoring files

72
推荐指数
2
解决办法
13万
查看次数

在 bash 中,如何可以写入重定向输入的文件,并且可以防止它?

我以为我对 bash 文件重定向有很好的处理能力,并且通常我会尽量避免“无用使用 cat ”,但是我在脚本中遇到了一些意外行为,我想了解为什么会发生这种情况。

在 bash 脚本中,我执行:

somecommand < file1 > file2
Run Code Online (Sandbox Code Playgroud)

我的期望是 file1 是安全的并且以只读方式打开。在实践中,我发现 file1 可以被覆盖。如何/为什么会发生这种情况,有没有办法在不诉诸于的情况下防止它cat

如果它像我想象的那样工作(该过程最终会得到一个直接的 rw 文件描述符?),那么以这种方式重定向文件似乎应该被认为是危险的,但我之前从未见过这种行为。

从我的案例中添加一些细节:有问题的命令是sops,它在后台做一些 GPG 的东西。提示符GPG密码有时被写入到用于输入文件,覆盖它。我使用的完整命令是:

sops --input-type json --output-type json -d /dev/stdin < ./secrets/file.json > ./secrets/file-decrypted.json
Run Code Online (Sandbox Code Playgroud)

从那以后我切换到了cat file1 | sops.. > file2,一切都按预期工作。我会说这是“对猫的无用使用” - 但它似乎不再那么无用了!


好像是gpg-agent没有运行的时候第一次提示的。

bash io-redirection

23
推荐指数
1
解决办法
1226
查看次数

有没有一种简单的方法来检查哪个程序写入/var/log/messages?

有没有一种简单的方法来检查哪个程序写入了哪个文件?例如,我想检查哪个程序向 /var/log/messages 写入了错误。

centos

3
推荐指数
1
解决办法
9681
查看次数

标签 统计

bash ×1

centos ×1

files ×1

io-redirection ×1

monitoring ×1

process ×1