Installation 防止在UNIX中安装时由于文件权限而导致数据泄漏
我使用标准POSIX实用程序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
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