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

时间:2014-07-01 13:22:18

标签: bash shell cluster-computing

在安装了PBS批处理系统(扭矩)的集群中,我们希望所有用户按qsub执行其作业,以便可以很好地管理CPU资源。但是,我们发现群集中的用户仍然可以直接在他们的bash shell中运行他们的程序。

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

qczhan2@barrine1:~>echo $0
-bash

在他们的配置中,用户可以运行基本命令,如lspwdcp和'cd'到系统文件夹,但是当用户运行自己的二进制文件时,系统声明“不允许许可”。还有必要提一下,如果尝试使用任何mpi命令调用用户拥有的二进制文件,也不允许使用它。

例如:

qczhan2@barrine1:~>mpiexec -n 64 ./abc.out
permission denied

其中abc.out是用户定义的二进制文件。

我只是想知道如何配置系统呢?

2 个答案:

答案 0 :(得分:1)

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

/bin/bash -r

所以他们的shell变成了受限制的shell 。 Amonst其他限制不允许用户cd,设置或取消设置PATH或发出包含/的命令。这会将它们锁定为只允许他们访问的运行命令。

答案 1 :(得分:1)

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