阻止普通用户在pbs系统之外的集群上运行代码

在我们的安装了PBS批处理系统(转矩)的集群中,我们希望所有的用户都可以通过qsub来执行他们的工作,以便pipe理好CPU资源。 但是,我们发现群集中的用户仍然可以直接在他们的bash shell中直接运行他们的程序。

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

qczhan2@barrine1:~>echo $0 -bash 

在configuration中,用户可以运行基本命令,如ls,pwd,cp和cd,但是当usrs运行自己的二进制文件时,系统会提示“权限不允许”。

我只是想知道如何configuration系统是这样的?

非常感谢你。

更新:? 我努力了:

(a)使用noexec选项安装文件系统,但是这种方法不允许用户从pbs运行它们的二进制文件。

(b)使用受限制的bash,但是这种方法甚至不允许用户使用“cd”命令。

集群pipe理的问题是你总是会find一个愿意欺骗系统的人。 问责制可以改变行为。 您可能需要考虑更改队列中的优先级或取消对问题用户的访问。

在noexec中挂载home似乎是一个不错的想法,但是如果你没有一套集中pipe理的安装程序,那么这个问题就会失败。 我假设用户正在login到交互节点和运行命令。 我快速谷歌search揭示了一个转矩PAM模块,可以用来限制节点访问用户当前在该节点上的作业。 在这种情况下,他们会偷走自己的CPU。 您也可以拒绝来自头节点的计算节点的ssh访问,但是您仍然需要在节点之间允许ssh。

如果您正在处理大型单机或单个系统映像集群,则可以使用CPU限制来执行某些操作。 您需要为CPU时间分配一个小的软限制和合理的硬限制。 / etc中的bashconfiguration文件将不得不被修改以查找由Torque设置的PBS环境variables,并增加用户的软限制以匹配硬限制。 当然,用户可以增加他们的软限制,但仍然欺骗系统。

脚本中的一点创意可能会有很长的路要走,但是当用户抱怨的时候有一套策略是非常有用的。 如果你能用一个脚本来识别违规的程序,你可以随时杀死它们,或者用cron作业来处理它们。 祝你好运