用户添加、删除、冻结
SonmiHPC 集群上已经启用了用户自动同步功能,管理员只需要在登录节点上管理集群用户即可。以下的操作命令均需要root用户或者sudo用户进行操作。
创建用户
- 管理员可以通过下面的基础命令来创建集群用户:
shell
useradd <username> # username 为需要添加的用户名称
useradd <username> # username 为需要添加的用户名称
为了安全性,用户名称长度不能过短,请保证用户名不少于5个字符长度。
添加用户之后,通过下面的命令来生成密码,并修改用户密码:
shell
openssl rand -base64 14 # 14为随机生成的密码长度,根据需求更改
passwd <username> # 之后,输入上面生成的随机密码
openssl rand -base64 14 # 14为随机生成的密码长度,根据需求更改
passwd <username> # 之后,输入上面生成的随机密码
也可以选择同时执行下面的命令,强制用户首次登录时修改密码:
shell
chage -d 0 <username>
chage -d 0 <username>
- 添加用户的其他可选参数
在创建用户时,常用的可选参数如下:
- -e, --expiredate <到期时间>: 指定用户到期日期,格式为 YYYY-MM-DD,到达指定日期,用户自动冻结,例如 -e 2028-12-31
- -G, --groups <组1,组2...>: 指定用户加入的用户组中,例如 -G docker,conda
- -p, --password <密码>: 指定用户密码,在创建用户的时候就指定用户密码,例如 -p xlLJLsll122..@
删除用户
管理员可以通过下面的基础命令来删除集群用户:
shell
userdel <username> # username 为需要删除的用户名称
userdel <username> # username 为需要删除的用户名称
为了安全性,该命令删除用户后会默认保留用户原有的HOME目录文件。如果要在删除用户时彻底删除对应的HOME目录文件,可以添加如下的参数:
shell
userdel -f -r <username> # -f 参数会在用户还在线的时候强制删除,-r 参数会删除用户HOME文件
userdel -f -r <username> # -f 参数会在用户还在线的时候强制删除,-r 参数会删除用户HOME文件
请谨慎进行该操作。
冻结用户
相对于直接删除集群上的用户,建议使用冻结命令来冻结要停止使用的用户。有如下的几种方式:
- 限制用户到期时间
管理员可以通过下面的命令来限制用户在集群上的过期时间,一旦超过指定的日期,用户将被自动冻结:
shell
chage -E YYYY-MM-DD <username> # YYYY-MM-DD 为到期时间,username为指定的用户
chage -E YYYY-MM-DD <username> # YYYY-MM-DD 为到期时间,username为指定的用户
之后可以通过下面的命令查看验证用户到期时间:
shell
chage -l <username>
chage -l <username>
如果有时候误操作,需要取消对用户的到期时间限制,可以执行下面的命令进行取消:
shell
chage -E -1 <username>
chage -E -1 <username>
- 使用passwd命令锁定密码:
shell
passwd -l <username> # username为需要冻结的用户名
passwd -l <username> # username为需要冻结的用户名
该命令将使用户密码失效,用户无法通过密码登录,但是如果配置了SSH密钥登录,用户仍然可以通过密钥登录。
- 使用usermod命令锁定用户:
shell
usermod -L <username> # username为需要冻结的用户名
usermod -L <username> # username为需要冻结的用户名
同样该方式只能阻止用户通过密码登录,无法阻止密钥登录方式。
- 若要完全禁用用户登录,可以通过下面的方式来操作:
shell
usermod -s /sbin/nologin <username>
usermod -s /sbin/nologin <username>
该方式可以同时禁止用户通过密码或者密钥登录,立即生效。
用户密码管理
- 有时候需要强制用户在下次登录时更改密码,可以按如下的方式进行操作:
shell
chage -d 0 <username> # 该命令将强制用户密码立即过期,用户下次登录时需要更改密码
chage -d 0 <username> # 该命令将强制用户密码立即过期,用户下次登录时需要更改密码
用户下次登录时,输出如下,用户需要先修改密码完成后才能再次进行登录:
Connecting to 192.168.50.32:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
You are required to change your password immediately (administrator enforced).
WARNING! The remote SSH server rejected X11 forwarding request.
You are required to change your password immediately (administrator enforced).
╔╗╔╗╔╗──╔╗──────────────╔╗────╔═══╗─────────╔╗─╔╦═══╦═══╗
║║║║║║──║║─────────────╔╝╚╗───║╔═╗║─────────║║─║║╔═╗║╔═╗║
║║║║║╠══╣║╔══╦══╦╗╔╦══╗╚╗╔╬══╗║╚══╦══╦═╗╔╗╔╦╣╚═╝║╚═╝║║─╚╝
║╚╝╚╝║║═╣║║╔═╣╔╗║╚╝║║═╣─║║║╔╗║╚══╗║╔╗║╔╗╣╚╝╠╣╔═╗║╔══╣║─╔╗
╚╗╔╗╔╣║═╣╚╣╚═╣╚╝║║║║║═╣─║╚╣╚╝║║╚═╝║╚╝║║║║║║║║║─║║║──║╚═╝║
─╚╝╚╝╚══╩═╩══╩══╩╩╩╩══╝─╚═╩══╝╚═══╩══╩╝╚╩╩╩╩╩╝─╚╩╝──╚═══╝
****** SonmiHPC(v0.8.2) Docs: https://sonmihpc.com ******
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user sonmi1.
Current password:
Connecting to 192.168.50.32:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
You are required to change your password immediately (administrator enforced).
WARNING! The remote SSH server rejected X11 forwarding request.
You are required to change your password immediately (administrator enforced).
╔╗╔╗╔╗──╔╗──────────────╔╗────╔═══╗─────────╔╗─╔╦═══╦═══╗
║║║║║║──║║─────────────╔╝╚╗───║╔═╗║─────────║║─║║╔═╗║╔═╗║
║║║║║╠══╣║╔══╦══╦╗╔╦══╗╚╗╔╬══╗║╚══╦══╦═╗╔╗╔╦╣╚═╝║╚═╝║║─╚╝
║╚╝╚╝║║═╣║║╔═╣╔╗║╚╝║║═╣─║║║╔╗║╚══╗║╔╗║╔╗╣╚╝╠╣╔═╗║╔══╣║─╔╗
╚╗╔╗╔╣║═╣╚╣╚═╣╚╝║║║║║═╣─║╚╣╚╝║║╚═╝║╚╝║║║║║║║║║─║║║──║╚═╝║
─╚╝╚╝╚══╩═╩══╩══╩╩╩╩══╝─╚═╩══╝╚═══╩══╩╝╚╩╩╩╩╩╝─╚╩╝──╚═══╝
****** SonmiHPC(v0.8.2) Docs: https://sonmihpc.com ******
WARNING: Your password has expired.
You must change your password now and login again!
Changing password for user sonmi1.
Current password:
- 如果需要对用户的密码有效期及长度进行设置,可以编辑 /etc/login.defs 配置文件,并修改以下配置:
shell
# PASS_MAX_DAYS 密码可以使用的最大天数,超过该天数后将强制用户修改密码
# PASS_MIN_DAYS 用户修改密码的最小天数间隔,用户距离上次修改密码的日期超过该天数将强制用户修改密码
# PASS_MIN_LEN 用户密码允许的最小长度
# PASS_WARN_AGE 用户密码过期前开始警告的天数
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_WARN_AGE 7
# PASS_MAX_DAYS 密码可以使用的最大天数,超过该天数后将强制用户修改密码
# PASS_MIN_DAYS 用户修改密码的最小天数间隔,用户距离上次修改密码的日期超过该天数将强制用户修改密码
# PASS_MIN_LEN 用户密码允许的最小长度
# PASS_WARN_AGE 用户密码过期前开始警告的天数
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_WARN_AGE 7