tljh by default doesn’t use system users, it uses its own user database in nativeauthenticator (or firstuseauthenticator). To use system users, you’ll want to change the Authenticator and spawner. You can do this with:
c.JupyterHub.authenticator_class = "pam" # this will use real system users and passwords
c.JupyterHub.spawner_class = "systemd" # this will, too