files – 如何防止特定进程写入一组文件夹?

我想有一种方法,其中一组文件夹不允许特定进程的写访问.例如,我希望有一种方法,不允许YUM / RPM写入/usr/bin
最佳答案
您可以将软件chroot转换为bind mount设置,其中这些目录以只读方式挂载.

mkdir /foo
mount --bind / /foo
mount --rbind /dev /foo/dev
mount --bind /proc /foo/proc
mount --bind /run /foo/run
mount -t tmpfs tmpfs /foo/tmp
mount --bind /sys /foo/sys
mount --bind /usr/bin /foo/usr/bin
mount -o remount,ro /foo/usr/bin
chroot /foo rpm …

请注意,以root身份运行的恶意进程可以逃避chroot,因此这不是一个安全的限制,只是一种确保非恶意进程不写入不应该的地方的方法.

另一种方法是设置SELinux规则.这些甚至限制了以root身份运行的进程,因此如果设置正确(这是非常重要的,并且需要的不仅仅是文件访问阻止),它可以是一个安全的限制.

如果进程没有以root身份运行,只需确保目录上的权限不允许用户在那里写入.您可以使用排除特定用户的ACL,例如

setfacl -m user:alice:0 /some/dir

使/某些/目录无法访问用户alice,或

setfacl -R -m user:alice:rX /some/dir

使它和文件在其下可读但不可写.

转载注明原文:files – 如何防止特定进程写入一组文件夹? - 代码日志