转载,原文:https://blog.csdn.net/qq_31910613/article/details/103338758

SLURM提供了通过PAM插件限制普通用户随意登陆计算节点的功能。

(一)配置过程

(1)编译Slurm时指定编译参数--enable-pam。

(2)在slurm源码安装目录contribs/pam_slurm_adopt/目录下make && make install。

然后将生成的pam_slurm_adopt.a, pam_slurm_adopt.la和 pam_slurm_adopt.so 放到/lib64/security

(3)编辑SSHD的PAM配置文件/etc/pam.d/sshd,在最后添加两行

account sufficient pam_listfile.so item=user sense=allow file=/etc/ssh/allowed_users onerr=fail
account required pam_slurm_adopt.so

(4)编辑SSHD用户白名单文件。在步骤3完成后,所有用户(root除外)在没有作业运行的情况下是不能ssh登陆计算节点的。如果想对某些用户进行进行排除(即不受pam配置限制),可以在/etc/ssh/allowed_users(该文件位置由步骤3指定)中配置:

# cat /etc/ssh/allowed_users
root
youruser

然后 chmod 600 /etc/ssh/allowed_users 。

(5)在/etc/pam.d/system-auth和/etc/pam.d/password-auth中注释掉pam_localuser.so和pam_systemd.so

#account sufficient pam_localuser.so
#-session optional pam_systemd.so

(6)Slurm配置:

slurm.conf配置文件:

PrologFlags=CONTAIN
TaskPlugin=task/cgroup
ProctrackType=proctrack/cgroup

cgroup.conf配置文件:

CgroupAutomount=yes
ConstrainCores=yes

(7)其他配置

/etc/ssh/sshd_config确保UsePAM yes

禁用selinux

(8)注意事项:

所有节点同步/lib64/security/pam_slurm_adopt.a、/lib64/security/pam_slurm_adopt.la和/lib64/security/pam_slurm_adopt.so三个库。

所有节点同步/etc/pam.d/sshd、/etc/pam.d/system-auth、/etc/pam.d/password-auth三个配置文件和白名单文件/etc/ssh/allowed_users,然后重启sshd服务。

我用的是阿里云的EHPC,弹性计算节点,可以使用EHPC后处理脚本SetPostScripts触发新建计算节点同步配置文件。

(二)测试结果

(1)已验证pam_slurm_adopt功能可以限制普通权限用户只能登陆自己有作业运行的计算节点。此外不管是作业被杀掉还是正常结束,ssh连接都会断掉。

(2)已验证白名单/etc/ssh/allowed_users内的用户可以登录到任意计算节点,而未加入白名单的用户只能登陆有自己作业运行的节点。

Slurm限制普通用户登陆计算节点(超算管理员必看)相关推荐

  1. 如何禁止普通用户通过rsh登陆计算节点

    依次修改各计算节点中/etc/xinetd.d/文件夹下面的rsh.rlogin.rexec文件 修改内容如下所示: [root@node11 ~]# vi /etc/xinetd.d/rsh # d ...

  2. WDA演练一:用户登陆界面设计(一)

    一,新建用户表: 用户和密码参考标准的.这里给用户分了几个维度,以便后面进行接下来的业务设定. 二,新建ZLY_PORTAL 程序. 除了MAIN视图外,在添加LOGON视图. 1.导入预先做好的主页 ...

  3. X7-2计算节点关于网卡的一点变化

    官方文档记载了X7-2的计算节点网卡信息如下: 2 x InfiniBand 4X QDR (40 Gbps) ports (PCIe 3.0), both ports active 2 x 1 Gb ...

  4. Yii 用户登陆机制

    Yii 生成应用时已经提供了最基础的用户登陆机制.我们用 Yii 生成一个新的应用,进入 protected/components 目录,我们可以看到 UserIdentity.php 文件,里面的 ...

  5. 用户、配额管理 、 云主机类型管理 、 镜像管理 、 网络管理 、 安全和实例管理 、 计算节点扩容案例

    Top NSD CLOUD DAY03 案例1:管理项目 案例2:新建云主机类型 案例3:上传镜像 案例4:创建网络 案例5:管理浮动IP地址 案例6:创建安全组及规则 案例7:创建云主机 案例8:安 ...

  6. 9 Openstack-Ussuri-Neutron控制/计算节点集群部署-centos8

    Nova具体功能如下: 1 Neutron 为整个 OpenStack 环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙和 VPN 等. 2 Neutron 提供了一个灵活的框架,通过配置, ...

  7. 看 nova-scheduler 如何选择计算节点 - 每天5分钟玩转 OpenStack(27)

    2019独角兽企业重金招聘Python工程师标准>>> 本节重点介绍 nova-scheduler 的调度机制和实现方法:即解决如何选择在哪个计算节点上启动 instance 的问题 ...

  8. O027、看nova-scheduler如何选择计算节点

    参考https://www.cnblogs.com/CloudMan6/p/5441782.html 本节重点介绍 nova-scheduler 的调度机制和实现方法:即解决如何选择在那个计算节点上启 ...

  9. 电脑切换用户关闭计算机会怎样,电脑中的“睡眠、关机、注销、切换用户、待机、休眠”都什么意思?有什么区别...

    电脑中的"睡眠.关机.注销.切换用户.待机.休眠"都什么意思?有什么区别? (一)待机:待机模式主要用于节电,该功能使你可不需重新启动计算机就可返回工作状态.待机模式可关闭监视器和 ...

最新文章

  1. @bean注解和@component注解的区别_阿里面试题一:spring里面使用xml配置和注解配置区别...
  2. 关于maven工程中一直报和依赖包json-lib-2.4-jdk15.jar相关错误的问题解决方法
  3. python TypeError: Expected int32, got list containing Tensors of type '_Message' instead.
  4. MyBatis之简单了解Plugin
  5. 内部类的分类及其定义
  6. HTML css嵌套的一个例子
  7. ASP.NET AJAX入门系列(10):Timer控件简单使用
  8. Hibernate 入门之轻松上手 选择自 chainshun 的 Blog
  9. Android系统(187)---最易懂的Activity启动模式详解
  10. Objective-C 与JAVA的SHA1/HmacSHA1加密算法实现
  11. 【渝粤教育】国家开放大学2018年春季 0242-21T机械制图 参考试题
  12. Tomcat开发技术之与HTTP服务器的集成
  13. 程序之间耦合以及解耦问题探究
  14. java给xyz大小排序_Java Collection - 002 排序
  15. Java的反射 基础+简单复制对象实例
  16. 计算机测试的论文,计算机软件测试毕业论文(定稿).doc
  17. 《不要等到毕业以后》读书笔记
  18. ffmpeg 为取经而来_取经路上的妖魔鬼怪,傻傻分不清楚
  19. Crontab 每隔整点1小时2小时执行一次任务
  20. 洛谷P5322 [BJOI2019]排兵布阵【分组背包】

热门文章

  1. 实践练习1:OceanBase Docker 体验
  2. PyVCF 变异基因数据处理
  3. openeuler22.03实时系统安装及部署
  4. idea中提示语的显示和隐藏(port:8088)
  5. 建信笔试 10.10
  6. 清华大学计算机全套教程,清华大学计算机全套教程(值得收藏).doc
  7. c 语言 uint8 转char,在C中的uint8和char之间的转换
  8. “前端开发中的三种定时任务及其应用“
  9. Python 用最小二乘圆度拟合 的方法实现圆角测量
  10. Java之Spring5:IOC容器