规划用户UID,GID。用户自10000向上分配,项目组自20000向上分配(通常不需要)
# 检查ID冲突
getent passwd <userid>
getent group <groupid>
控制节点与计算节点统一用户(在所有节点同步执行):
# 注册环境变量,将下面尖括号中的内容替换为实际id与名称。
export USERID=<userid>
export GROUPID=<groupid>
export USERNAME=<username>
export GROUPNAME=<groupname>
# 创建项目组,项目组自20000向上分配(通常不需要)
sudo groupadd -g ${GROUPID} ${GROUPNAME}
# 创建用户,用户自10000向上分配,会同时创建用户主组
sudo useradd -u ${USERID} -m ${USERNAME} --shell /bin/bash
# 锁定密码
sudo passwd -l ${USERNAME}
# 将用户添加至组
sudo usermod -aG ${GROUPNAME} ${USERNAME}
# 检查注册结果,观察用户、组是否正常注册
getent passwd ${USERNAME}
getent group | grep ${USERNAME}
在控制节点为用户创建ssh密钥
# make path
sudo install -d -m 700 -o ${USERNAME} -g ${USERNAME} /home/${USERNAME}/.ssh
# generate ssh key 密码选项留空
sudo -u ${USERNAME} ssh-keygen -t ed25519 -f /home/${USERNAME}/.ssh/id_ed25519
# print pubkey
sudo cat /home/${USERNAME}/.ssh/id_ed25519.pub
# 记录这个公钥,后面还要用一次。
sudo vim /home/${USERNAME}/.ssh/authorized_keys
# 将cat 出来的密钥写入authorized_keys,
# change permissions
sudo chmod 600 /home/${USERNAME}/.ssh/id_ed25519
sudo chmod 644 /home/${USERNAME}/.ssh/id_ed25519.pub
在控制节点注册OOD 账号
sudo htpasswd /etc/ood/.htpasswd ${USERNAME}
sudo systemctl reload apache2
在控制节点数据库中注册用户关系
# 查看当前已注册组账户
sacctmgr show account
# 如有必要,新建组,通常不需要,使用现有的组。
sudo sacctmgr -i add account ${GROUPNAME} Description="<description>" Organization="<organization>"
# 注册用户
# 账户重组,暂不注册用户独立账户
# sudo sacctmgr -i add account ${USERNAME} Description="<description>" Organization="<organization>"
sudo sacctmgr -i add user ${USERNAME} DefaultAccount=${GROUPNAME} Account=${GROUPNAME} # 后面可以添加其它的附属Accounts。
# 验证注册结果
sacctmgr show assoc tree
# 看到用户注册到了所属组
# epic <groupname> <username>
在计算节点注册公钥
sudo install -d -m 700 -o ${USERNAME} -g ${USERNAME} /home/${USERNAME}/.ssh
sudo vim /home/${USERNAME}/.ssh/authorized_keys
# 将cat 出来的密钥写入authorized_keys
sudo chown ${USERNAME}:${USERNAME} /home/${USERNAME}/.ssh/authorized_keys
sudo chmod 600 /home/${USERNAME}/.ssh/authorized_keys
在控制节点测试链接
# 控制节点连通性测试
sudo -u ${USERNAME} ssh -i /home/${USERNAME}/.ssh/id_ed25519 ${USERNAME}@127.0.0.1 'echo OK'
# 看到输出了OK
# 计算节点连通性测试
sudo -u ${USERNAME} ssh -i /home/${USERNAME}/.ssh/id_ed25519 ${USERNAME}@222.20.76.74 'echo OK'
# 看到输出了OK
在计算节点为用户分配磁盘限额
# 按照模板账户设置磁盘限额
sudo edquota -p quota_template ${USERNAME}
# 检查限额情况
sudo quota -s -u ${USERNAME}
# 应当输出例如:
# Disk quotas for user maintain (uid 1000):
# Filesystem space quota limit grace files quota limit grace
# /dev/mapper/ubuntu--vg-home
# 642M 200G 300G 4699 0 0