- 計算節點pam限制
排程系統slurm提供了pam外掛,可以實現如下功能:
當且僅當計算節點執行普通使用者作業的情況下,該使用者才可以透過ssh登入該計算節點。
計算節點的排程系統安裝後,在/lib64/security下存在如下三個庫檔案:
/lib64/security/pam_slurm_adopt.a
/lib64/security/pam_slurm_adopt.la
/lib64/security/pam_slurm_adopt.so
排程系統主配置檔案/opt/gridview/slurm/etc/slurm.conf的若干配置引數需要進行調整,如下所示:/
PrologFlags=CONTAIN
TaskPlugin=task/cgroup
ProctrackType=proctrack/cgroup
此外,/opt/gridview/slurm/etc/cgroup.conf配置示例如下:
CgroupAutomount=yes
ConstrainCores=yes
配置後,重啟slurmctld以及所有計算節點的slurmd服務
systemctl restart slurmctld
systemctl restart slurmd
系統相關pam配置
計算節點的排程系統安裝後,在/lib64/security下存在如下三個庫檔案,如下所示:
/lib64/security/pam_slurm_adopt.a
/lib64/security/pam_slurm_adopt.la
/lib64/security/pam_slurm_adopt.so
這些庫檔案是作業系統啟用pam限制的基礎。
在具體配置層面,每個計算節點需要修改如下的配置項:
(1)/etc/ssh/sshd_config
確保該配置檔案中啟用了“UsePAM yes”選項。
(2)/etc/pam.d/sshd
修改sshd服務的PAM配置檔案,新增pam_listfile.so和pam_slurm_adopt兩行“account”配置,示例如下:
…
# Used with polkit to reauthorize users in remote sessions
-auth optional pam_reauthorize.so prepare
account required pam_nologin.so
account include password-auth
account sufficient pam_listfile.so item=user sense=allow onerr=fail file=/etc/ssh/allowed_users
account required pam_slurm_adopt.so
password include password-auth
# pam_selinux.so close should be the first session rule
…
(3)/etc/pam.d/system-auth
在該配置檔案中註釋掉原有的“pam_localuser.so”和“pam_systemd.so”,配置示例如下:
…
account required pam_unix.so broken_shadow
#account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
…
session optional pam_keyinit.so revoke
session required pam_limits.so
#-session optional pam_systemd.so
session optional pam_oddjob_mkhomedir.so umask=0077
#session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so
session optional pam_ldap.so
(4)/etc/pam.d/password-auth
與system-auth類似,註釋掉原有的“pam_localuser.so”和“pam_systemd.so”,配置示例如下:
…
account required pam_unix.so broken_shadow
#account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
…
session optional pam_keyinit.so revoke
session required pam_limits.so
#-session optional pam_systemd.so
session optional pam_oddjob_mkhomedir.so umask=0077
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so
session optional pam_ldap.so
5)/etc/ssh/allowed_users
該配置檔案是sshd白名單列表。在該配置檔案中的使用者不受pam配置限制。
配置檔案示例如下:
root
sugon
chmod 600 /etc/ssh/allowed_users限制檔案許可權。
配置以上內容後,重啟sshd服務即可。
systemctl restart sshd
在上述配置的情況下,root使用者和sugon使用者將不受上述排程系統的pam外掛限制。