diff -up kde-workspace-4.11.22/kdm/kfrontend/kgreeter.cpp.500 kde-workspace-4.11.22/kdm/kfrontend/kgreeter.cpp --- kde-workspace-4.11.22/kdm/kfrontend/kgreeter.cpp.500 2016-11-08 20:05:41.714961555 +0100 +++ kde-workspace-4.11.22/kdm/kfrontend/kgreeter.cpp 2016-11-08 20:09:04.938164314 +0100 @@ -405,7 +405,8 @@ KGreeter::insertUsers() for (setpwent(); (ps = getpwent()) != 0;) { if (*ps->pw_dir && *ps->pw_shell && (ps->pw_uid >= (unsigned)realLowUserId || - (!ps->pw_uid && _showRoot)) && + (!ps->pw_uid && _showRoot) || + (ps->pw_uid >= 500u && ps->pw_uid < (unsigned)_lowUserId && strcmp(ps->pw_dir, "/") != 0 && strncmp(ps->pw_dir, "/var/", 5) != 0 && strncmp(ps->pw_dir, "/run/", 5) != 0 && strcmp(ps->pw_shell, "/sbin/nologin") != 0 && strcmp(ps->pw_shell, "/usr/sbin/nologin") != 0 && strcmp(ps->pw_shell, "/bin/false") != 0 && strcmp(ps->pw_shell, "/usr/bin/false") != 0)) && ps->pw_uid <= (unsigned)_highUserId && !noUsers.hasUser(ps->pw_name) && !noUsers.hasGroup(ps->pw_gid)) @@ -424,7 +425,8 @@ KGreeter::insertUsers() for (setpwent(); (ps = getpwent()) != 0;) { if (*ps->pw_dir && *ps->pw_shell && (ps->pw_uid >= (unsigned)realLowUserId || - (!ps->pw_uid && _showRoot)) && + (!ps->pw_uid && _showRoot) || + (ps->pw_uid >= 500u && ps->pw_uid < (unsigned)_lowUserId && strcmp(ps->pw_dir, "/") != 0 && strncmp(ps->pw_dir, "/var/", 5) != 0 && strncmp(ps->pw_dir, "/run/", 5) != 0 && strcmp(ps->pw_shell, "/sbin/nologin") != 0 && strcmp(ps->pw_shell, "/usr/sbin/nologin") != 0 && strcmp(ps->pw_shell, "/bin/false") != 0 && strcmp(ps->pw_shell, "/usr/bin/false") != 0)) && ps->pw_uid <= (unsigned)_highUserId && (users.hasUser(ps->pw_name) || users.hasGroup(ps->pw_gid)))