如何解决防止在 UNIX 中安装过程中由于文件权限导致数据泄漏
我使用标准 POSIX 实用程序 cp
、install
、sed
、sh
安装文件。
可以使用 chmod
/ chown
/ chgrp
修复任何权限,但暂时暴露敏感数据并稍后修复是危险的。
处理问题的“标准”方法是使用install -m MODE -u USER -g GRP
。
如果我需要使用“哑”实用程序(例如 grep
/ sed
/ awk
/ sh
)处理文件怎么办?如何防止此类工具的数据泄漏?通过使用 umask 777
?
我认为以下危险:
base64 -d secret.txt >/etc/app.key
sed -e '/^#.*/d' </etc/default/app.cfg >/etc/app.cfg
因为如果 umask
太开放,其他用户可能可以访问文件内容。此外,我必须在重定向后“修复”用户/组...
PS 似乎 install
不在 POSIX ... https://pubs.opengroup.org/onlinepubs/9699919799/utilities/contents.html
此外 GNU install
不从管道读取,因此以下技巧是不可能的:
sed ... < $SRC | install -m MODE -u USER -g GRP - $DEST
某些 shell 允许进程替换(<(cmd)
语法)或者可能创建命名管道作为解决方法...
解决方法
阅读 POSIX 后,我发现 mkdir
、cp
和其他工具无法保证尊重 umask
。实际上 umask
是一个进程属性,由内核/系统处理。
我最好使用带有 -m MODE
(-u
,-g
) 的非标准 GNU 安装。
对于愚蠢的工具,带有进程替换的 GNU Bash 会很方便:
install -m 0700 <(sed ... $SRC) $DST
但我不确定 FIFO 权限...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。