* 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.
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
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
|
||||
|
@@ -602,14 +602,19 @@ static void user_busy (const char *name, uid_t uid)
|
||||
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,
|
||||
|
Reference in New Issue
Block a user