以只读模式运行程序

以只读模式运行程序

我有一个 apache 在用户 apache 下运行,具有很多权限(读写多个目录)。现在我想让一些用户通过webform上传程序/脚本并执行它们,exec()在文件上传php页面中使用php函数。但是,我不希望这些程序能够向硬盘写入任何内容。看来程序sudo可以满足我的需要,但我不知道如何使用它。
简而言之:如何在强大的用户下以只读模式运行程序和脚本?
如果重要的话,我的系统是 Centos 6。

答案1

你是对的,具有读取但不具有写入权限的用户的 sudo 将以仅对您授予其权限的文​​件具有写入权限的方式运行命令。

sudo -u some_user cmdname

运行任意用户上传的程序需要极端的安全预防措施。不幸的是,本地 root 漏洞在 Linux 中并不罕见。让用户在没有某种监狱/遏制(如果不是虚拟机)的情况下运行他们上传的程序是不明智的。

nobody您应该构建您的系统,以便即使上传的程序利用未修补的 root 漏洞将其权限从 提升到,它至少仍然是安全的root

相关内容