Installation 防止在UNIX中安装时由于文件权限而导致数据泄漏

Installation 防止在UNIX中安装时由于文件权限而导致数据泄漏,installation,sh,posix,file-permissions,umask,Installation,Sh,Posix,File Permissions,Umask,我使用标准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

我使用标准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

一些shell允许进程替换(
在阅读POSIX之后,我发现没有保证
mkdir
cp
和其他工具尊重
umask
。实际上
umask
是一个进程属性,由内核/系统处理

我最好使用带有
-m模式的非标准GNU安装(
-u
-g

对于dumb工具,带有进程替换的GNU Bash将非常方便:


install-m 0700这可能是针对姐妹站点的,这里只有家庭用户,但我会使用超级用户权限在目标位置安装一个空文件,在文件中没有敏感数据时执行必要的chown/chgrp/chmod命令,然后根据需要写入文件。只有具有写入权限的用户/组才能更新该文件,并且只有具有读访问权限的人才能查看内容。如果您有一组(例如)20个文件,所有这些文件都需要相同的权限(例如,所有0700个PERM,即使所有者/组不同),那么umask命令将特别有用,允许您使用1个umask调用,而不是20个chmod调用
sed ... < $SRC | install -m MODE -u USER -g GRP - $DEST