24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2626  |  回复: 21
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

cenwanglai

荣誉版主 (知名作家)

老和山猥琐派九段

优秀版主

[求助] 怎么样禁止绕开队列提交任务?

按照coolrainbow的教程和zhuangguangping提供的资料配置集群,似乎没有办法禁止用户绕开队列直接提交任务。

如果这些办法可以禁止,是如何实现的?

如果不可以,那需要怎么办?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xztjhs

铁虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
cenwanglai: 金币+10, ★★★很有帮助, 非常感谢~~ 2012-04-04 14:26:40
通过PAM限制普通用户绕过torque提交任务到计算节点

在高校集群实施时发现部分用户绕过torque,从管理节点上通过SSH登陆到计算节点,直接运行程序,占用系统资源的现象。该现象严重影响了集群的正常运行。本文提供两个方法来应对这个现象。

方法一:
实现效果:当用户A在计算节点node1上有作业(由torque+maui.d分配的PBS任务)时,可以SSH到node1。当A在node1上无作业时,无法SSH登陆到node1。

1、        重新编译torque。
如果是单独安装torque+maui.d,在编译torque时使用如下参数:
./configure  --enable-docs --with-scp --with-pam=yes --enable-syslog --prefix=以/开头的需要安装到的目录
该参数编译出的torque会在/lib64/sscurity/下生成3个含有pbs字样的PAM模块。
编译完成后按正常步骤安装torque和maui.d。(包括在计算节点安装本步骤已编译好的torque)

如果是使用GridView2.0,在安装前需要修改gridview_2_0\scripts\下边的install_torque_gridview.sh文件。
使用vi打开该文件,找到脚本里面的“./configure”行。这三行里面有两行是编译torque的,一行是编译maui的。修改编译torque的那两行,在选项里面添加一个--with-pam=yes 的选项。接下来按正常步骤安装gridview即可。

2、        配置PAM(该步骤操作在各计算节点进行,可以在其中一个计算节点修改好access.conf和system-auth文件,然后将这两个文件同步到其它所有计算节点。注意:如果将这两个文件同步给管理节点,将导致普通用户无法登陆到管理节点!!!)
先修改/etc/security/access.conf
在末尾加入一行:
-:ALL EXCEPT root shi:ALL           #除了root以外的用户都调用torque+PAM进行验证。(如果还有其他用户不需要限制,直接在增加一行,将root该为你需要的用户名)

然后修改/etc/pam.d/system-auth文件。
在末尾加入两行:
account sufficient /lib64/security/pam_pbssimpleauth.so
account required /lib64/security/pam_access.so

通过如上两大步骤的配置就可以达到方法一的目标。


方法二:
实现效果:无论用户A在计算节点node1上有无作业,均不能SSH登陆到node1。

1、        修改node1的/etc/security/access.conf
在末尾增加两行如下:
- : ALL EXCEPT root : node0                                #禁止从node0过来的root以外的用户登陆。
+ : ALL : ALL                                                        #匹配其它默认规则。
2、        修改node1的/etc/pam.d/sshd
修改好的例子如下(只改动红色部分):
#%PAM-1.0
auth     include        common-auth
#auth     required       pam_nologin.so        #加#注释该行。
account  required       pam_access.so        #本行为新增,调用pam_access.so模块。
account  include        common-account
password include        common-password
session  include        common-session
3、        将修改好的access.conf和sshd同步到其它计算节点。(如同步到管理节点,会造成所有普通用户无法登陆的现象。)

通过上述3个步骤,即可达到本法的效果。



总结:
无论是方法一还是方法二,都是通过linux系统自带的PAM功能来实现。限制用户通过某种方式访问本节点。两法的区别在于调用的pam模块。方法一调用的是torque的模块,方法二调用的是ssh的模块。万变不离其中,更多的限制方法等待大家去研究。
非专业,更专注
20楼2012-04-04 13:53:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 22 个回答

风间的记忆

铁杆木虫 (著名写手)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
cenwanglai(金币+3): 有帮助 谢谢回复~~ 2012-03-08 17:10:07
这个你只能禁止命令行登陆集群
然后所有的用户必须通过QSUB+脚本的方式提交任务

暂时看没有其他办法
即使限制MPIRUN
用户如果想绕过调度系统一样可以在自己的目录下安装MPI

哈哈 要是更聪明的
完全可以绕过调度系统把整个集群全占了
九州浩淼,任其东西,明日何在,但随我意。
2楼2012-03-08 16:45:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

独孤狼

金虫 (正式写手)

独行者

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
cenwanglai(金币+4): 有帮助 你这个对我要求高了~~ 2012-03-08 17:10:23
限制用户的权限
或更改脚本的权限为只有执行权限
或更改提交任务的命令位置以及执行权限
或在脚本里做手脚,比如说所有的环境变量在脚本里面设定
总之就是让用户离了脚本就不知道该怎么提交任务
具体怎么设还是根据用户的水平而定了
轮回的过往,注定的未来;独孤的行者,孤独的路途……
3楼2012-03-08 17:08:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cenwanglai

荣誉版主 (知名作家)

老和山猥琐派九段

优秀版主

引用回帖:
3楼: Originally posted by 独孤狼 at 2012-03-08 17:08:15:
限制用户的权限
或更改脚本的权限为只有执行权限
或更改提交任务的命令位置以及执行权限
或在脚本里做手脚,比如说所有的环境变量在脚本里面设定
总之就是让用户离了脚本就不知道该怎么提交任务
具体 ...

我听说可以关掉ssh,然后只在队列调度里面设置ssh。而且禁止修改。
4楼2012-03-08 17:12:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见