如何防止应用程序写入磁盘?

如何防止应用程序写入磁盘?

我想在我的服务器上执行一个应用程序,但不希望该应用程序修改任何文件。我希望该应用程序读取文件并输出到 stdout/stderr。但是,我不知道该应用程序可能尝试执行什么操作,因为它是由其他人提供给我的。

在 Linux 中实现此目的的最简单方法是什么?我正在运行 Red Hat 5。

我能想到的一种方法是创建一个仅具有读取级别访问权限的新用户。有没有其他方法可以在不创建用户的情况下做到这一点?

答案1

您可以使用chroot 命令将进程限制在沙盒目录中。

如果无法复制必要的文件:使用“bind mount”创建从 chroot 目录内部到外部文件系统的链接。在 chroot 之外运行 mount 命令。

mount /external/path /chroot/sandbox/ref_to_external -o bind

正如您所建议的:您可以以另一个用户的身份运行您的应用程序:

/bin/su - limitedUser -c "/path/to/xxxx"

解释:

 /bin/su : switch user
 - : option to su, make it a login session (source profile for the user)
 limitedUser : user to become
 -c "/path/to..." : command to run

确保其limitedUser属于仅具有读取+执行权限但没有写入权限的组。

相关内容