我使用此命令检查 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
以您的默认权限命名。
换句话说,发出此命令后,您将覆盖c
在crw-rw-rw
权限中,意味着其原始定义为字符特殊设备,使其就其原始用途而言完全无用。
为了顺利实现您愿意做的事情,并且按照 man 中的指定,您绝对应该使用连字符 (-) 作为文件名。
然后,与任何其他 *ux 命令一样,随意将标准输出重定向到 /dev/null。 (>/dev/null)