【问题标题】:Prevent data leak due to file permissions during installation in UNIX防止在 UNIX 中安装期间由于文件权限而导致数据泄漏
【发布时间】:2021-04-09 15:43:55
【问题描述】:

我使用标准 POSIX 实用程序 cpinstallsedsh 安装文件。

可以使用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 允许进程替换&lt;(cmd) 语法)或者创建命名管道作为解决方法...

【问题讨论】:

  • 这可能是姐妹网站unix.stackexchange.com
  • 这里只是一个家庭用户,但我会使用超级用户权限在目的地安装一个空文件,在文件中没有敏感数据的情况下执行必要的 chown/chgrp/chmod 命令,然后根据需要编写文件。只有具有写入权限的用户/组才能更新文件,只有具有读取权限的用户/组才能看到内容。如果你有一组,比如说,20 个文件都需要相同的权限(例如,所有 0700 权限,即使所有者/组不同),这就是 umask 命令特别有用的地方,允许你使用 1 个 umask 调用来代替20 次 chmod 调用

标签: installation sh posix file-permissions umask


【解决方案1】:

阅读 POSIX 后,我发现 mkdircp 和其他工具无法保证尊重 umask。实际上umask 是一个进程属性,由内核/syscals 处理。

我最好使用带有-m MODE-u-g)的非标准GNU安装。

对于愚蠢的工具,带有进程替换的 GNU Bash 会很方便:

install -m 0700 <(sed ... $SRC) $DST

但我不确定 FIFO 权限...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 2016-02-15
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多