【问题标题】:prevent bash from running user defined binary防止 bash 运行用户定义的二进制文件
【发布时间】:2014-07-01 13:22:17
【问题描述】:

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

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

qczhan2@barrine1:~>echo $0
-bash

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

例如:

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

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

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

【问题讨论】:

  • 我觉得这个更适合serverfault.com
  • 我来自服务器故障,因为那里没有正确的答案。而且我认为它应该与shell配置有关,这是stackoverflow中的一个问题
  • Your Server Fault question 仅存在 10 小时。没有立即得到答案似乎不是发布到不合适的 SE 网站的最佳理由。如果它是您自己的个人用户帐户的 shell 配置,我可以在 SO 上看到问题,但是想要为许多用户配置它在 SO 领域并不像我看到的那样多。无论如何,我希望这里或那里有人有专业知识来回答您的问题。

标签: bash shell cluster-computing


【解决方案1】:

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

/bin/bash -r

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

【讨论】:

  • 但是我们确实需要允许用户 mkdir 和 cd 到另一个文件夹来管理他们自己的数据,甚至可以让他们也看到系统文件夹。
【解决方案2】:

如果您使用 Linux:使用选项“noexec”安装用户具有写入权限的文件系统(例如 /home、/tmp、/var/tmp、/dev/shm)。

【讨论】:

  • 我尝试使用“noexec”选项安装用户应该使用的文件系统。结果是用户既不能直接运行二进制文件,也不能通过批处理系统执行二进制文件。
猜你喜欢
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-05
  • 1970-01-01
  • 2012-09-05
  • 2011-08-13
相关资源
最近更新 更多