Ubuntu22.04中JupyterHub创建的用户未显示在登录列表的解决咨询
解决Ubuntu 22.04中JupyterHub创建的系统用户不显示在登录列表的问题
一、修复现有不显示的用户
Ubuntu登录列表默认只显示UID≥1000、使用可登录shell(如/bin/bash)且拥有有效主目录的用户。按以下步骤修复:
修改用户登录shell
执行命令将用户的shell从默认的/sbin/nologin改为可登录的bash:sudo usermod -s /bin/bash mlops_user1 sudo usermod -s /bin/bash mlops_user2替换命令中的用户名到你实际的用户。
检查并调整用户UID
先查看用户当前UID:id -u mlops_user1如果UID小于1000,修改为未被占用的≥1000的UID(例如1005,先通过
cat /etc/passwd | cut -d: -f3确认已用UID):sudo usermod -u 1005 mlops_user1 # 同步主目录权限 sudo chown -R mlops_user1:mlops_user1 /home/mlops_user1确保主目录存在且权限正确
如果用户主目录不存在,创建并设置权限:sudo mkdir /home/mlops_user1 sudo chown mlops_user1:mlops_user1 /home/mlops_user1 sudo chmod 700 /home/mlops_user1刷新登录管理器缓存
根据你使用的登录管理器重启服务:- GDM(Ubuntu默认):
sudo systemctl restart gdm3 - LightDM:
sudo systemctl restart lightdm
- GDM(Ubuntu默认):
二、避免后续创建用户出现同类问题
修改JupyterHub配置文件(通常为jupyterhub_config.py),添加以下配置,强制创建符合Ubuntu登录列表要求的用户:
c.LocalAuthenticator.create_system_users = True # 指定创建用户时使用可登录的bash shell,同时保持无密码(适配JupyterHub认证) c.LocalAuthenticator.add_user_cmd = ['adduser', '--disabled-password', '--gecos', '""', '--shell', '/bin/bash'] # 设置用户UID起始值为1000(匹配Ubuntu普通用户默认范围) c.LocalAuthenticator.user_kwargs = {'uid_start': 1000}
配置完成后重启JupyterHub服务:
sudo systemctl restart jupyterhub
后续通过JupyterHub创建的用户会自动满足登录列表显示的条件。
内容的提问来源于stack exchange,提问作者Rich KS
相关产品推荐
相关产品推荐

