关于LSF调用系统级用户组的方法

集群管理 0 593 团子精英 收藏

在使用LSF的时候,通常需要配合用户组来进行一些权限划分,而LSF管理员通常需要手动去编写这些内容。那么有没有一种方法,可以让LSF直接调用系统级的用户组来实现呢?当然有,以下就是一个方法:

如果某位读者/粉丝有其他方式,请文章下留言或者后台留言。

前提1、将Lsfmaster加入到你的认证体系中

    无论是ldap,还是nis还是sssd,亦或者是本地passwd认证

    需要使用getent命令来获取用户组信息

前提2、使用getent命令获取用户信息,并且确认获取正常

  getent group xxxx

3、使用egroup的方式将用户组内容添加到lsf中

脚本如下:

#!/bin/bash
if [ "$1" == "-u" ]; then
   group=`getent group $2|awk -F ":" '{print $4}'|tr ',' ' '`
   echo $group
fi

释义:

$1是第一个参数,  -u 代表的是获取用户信息,这是egroup定义的usergroup_name参数,参考以下链接

https://www.ibm.com/docs/en/spectrum-lsf/10.1.0?topic=groups-configuration-enable-external-host-user

$2是第二个参数  是用户组信息,这是getent的参数

通过getent group 用户组名 ,然后通过awk命令将用户识别出来

识别后的用户是 如下格式:

user1 user2 user3

需要通过tr替换方式将空格替换为逗号,方便lsf识别,替换后格式如下:

user1,user2,user3

这时候,我们就可以将egroup集成到lsf中

4、集成

将egroup文件放在$LSF_SERVERDIR目录下,注意,这个文件不需要后缀,但是实际是一个bash脚本

设置egroup文件权限为755

chmod 755  $LSF_SERVERDIR/egroup

重新读取配置

badmin  ckconfig   检查配置是文件
badmin reconfig   重读配置文件

可以ckconfig看到有没有错误等信息,如果没有错误,就直接重读

5、配置用户

在配置好egroup之后,lsf并不能直接调用系统级的group信息,而是根据需求定义

配置lsb.users文件,将我们需要的组添加进去即可

例如:

Begin UserGroup
GROUP_NAME  GROUP_MEMBER
Pro1      (!)
End UserGroup

其中,Pro1是需要调用的group,(!)代表使用egroup读取信息,配置之后记得重读配置reconfig

6、测试

通过bugroup命令来测试是否生效

输入bugroup或者bugroup 组名 ,可以看到所有的用户组和组成员信息


相关推荐:

网友留言:

您需要 登录账户 后才能发表评论

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码