防止bash运行用户定义的二进制文件

防止bash运行用户定义的二进制文件,bash,shell,cluster-computing,Bash,Shell,Cluster Computing,在安装了PBS批处理系统(torque)的集群中,我们希望所有用户通过qsub执行他们的作业,以便能够很好地管理CPU资源。然而,我们发现集群中的用户仍然可以直接在bashshell中运行他们的程序 我注意到其他一些集群系统限制用户运行自己的二进制文件。它们的命令提示符不同于完全特权命令提示符。(从~>开始) 在他们的配置中,用户可以对系统文件夹运行基本命令,如ls、pwd、cp和“cd”,但当用户运行自己的二进制文件时,系统会声明“不允许使用权限”。还需要指出的是,如果试图使用任何mpi命令调

在安装了PBS批处理系统(torque)的集群中,我们希望所有用户通过
qsub
执行他们的作业,以便能够很好地管理CPU资源。然而,我们发现集群中的用户仍然可以直接在bashshell中运行他们的程序

我注意到其他一些集群系统限制用户运行自己的二进制文件。它们的命令提示符不同于完全特权命令提示符。(从~>开始)

在他们的配置中,用户可以对系统文件夹运行基本命令,如
ls
pwd
cp
和“cd”,但当用户运行自己的二进制文件时,系统会声明“不允许使用权限”。还需要指出的是,如果试图使用任何
mpi
命令调用用户拥有的二进制文件,这也是不允许的

例如:

qczhan2@barrine1:~>mpiexec -n 64 ./abc.out
permission denied
其中,
abc.out
是一个用户定义的二进制文件


我只是想知道如何将系统配置为这样?

您想将所有用户的默认shell从
/bin/bash
更改为:

/bin/bash -r

所以它们的壳变成了受限壳。除其他限制外,不允许用户
cd
、设置或取消设置
路径
或发出包含
/
的命令。这会将它们锁定为仅运行您授予它们访问权限的命令。

如果您使用Linux:mount文件系统,其中用户具有写入权限(例如,/home、/tmp、/var/tmp、/dev/shm),并带有选项“noexec”。

我认为这更适合于。我来自serverfault,因为没有正确的答案。我认为这应该与shell配置有关,stackoverflow中的一个问题只有10个小时。没有立即得到答案似乎不是发布到不合适的SE站点的最佳理由。如果它是针对您自己的个人用户帐户的shell配置,那么我可以看到这个问题,但是想要为许多用户配置它并不像我看到的那么复杂。不管怎样,我希望这里或那里的人有专业知识来回答你的问题。但是我们确实需要允许用户将mkdir和cd放到另一个文件夹来管理他们自己的数据,甚至可以让他们也看到系统文件夹。我试着在用户应该使用“noexec”选项的地方安装文件系统。结果是用户既不能直接运行二进制文件,也不能通过批处理系统执行二进制文件。
/bin/bash -r