+2009-05-17 Nicolas François <nicolas.francois@centraliens.net>
+
+ * src/userdel.c (user_busy): Check if the process registered in
+ utmp is still running. This avoids rejecting the removal of an
+ user when UTMP was not updated and indicate that the user is still
+ logged in.
+
2009-05-16 Nicolas François <nicolas.francois@centraliens.net>
* NEWS, libmisc/console.c (console): Remove the leading /dev/ from
while ((utent = getutent ()) != NULL)
#endif /* !USE_UTMPX */
{
- if (utent->ut_type != USER_PROCESS)
+ if (utent->ut_type != USER_PROCESS) {
continue;
-
+ }
if (strncmp (utent->ut_user, name, sizeof utent->ut_user) != 0) {
continue;
}
+ if (kill (utent->ut_pid, 0) != 0) {
+ continue;
+ }
+
fprintf (stderr,
- _("%s: user %s is currently logged in\n"), Prog, name);
+ _("%s: user %s is currently logged in\n"),
+ Prog, name);
if (!fflg) {
#ifdef WITH_AUDIT
audit_logger (AUDIT_DEL_USER, Prog,