如何防止 /dev/null 文件的权限更改或损坏?

如何防止 /dev/null 文件的权限更改或损坏?

我使用此命令检查 gpg 密码是否有效:

gpg -o /dev/null --local-user $KEY_ID -as <(echo 1234)

这是一个被黑的命令,用于检查我发布的 gpg 密码这里。我可以看到 /dev/null 文件权限从 666 更改为 644,有时它会损坏,并且某些脚本无法写入 /dev/null:

我可以通过使用以下命令重新创建 /dev/null 来解决此问题:

rm -f /dev/null; mknod -m 666 /dev/null c 1 3

第一个问题是,如何防止 /dev/null 权限更改或运行命令时文件损坏,这样我就不必手动重新创建 /dev/null。

第二个问题(如果第一个问题没有解决方案):如何在 bash 中验证 /dev/null 文件是否损坏?我想使用此方法重新创建 /dev/null 作为最后的手段。

任何想法 ?

答案1

man gpg查看-o参数的效果:

-o 文件 将输出写入文件。要写入标准输出,请使用 - 作为文件名。

因此,您发出的命令会创建一个普通文件/dev/null以您的默认权限命名。

换句话说,发出此命令后,您将覆盖ccrw-rw-rw权限中,意味着其原始定义为字符特殊设备,使其就其原始用途而言完全无用。

为了顺利实现您愿意做的事情,并且按照 man 中的指定,您绝对应该使用连字符 (-) 作为文件名。

然后,与任何其他 *ux 命令一样,随意将标准输出重定向到 /dev/null。 (>/dev/null)

相关内容