Add support for -k flag with a command.
This commit is contained in:
@@ -91,7 +91,7 @@ check_user(validated, mode)
|
|||||||
int status, rval = TRUE;
|
int status, rval = TRUE;
|
||||||
|
|
||||||
/* Always prompt for a password when -k was specified with the command. */
|
/* Always prompt for a password when -k was specified with the command. */
|
||||||
if (ISSET(mode, MODE_INVALIDATE)) {
|
if (ISSET(mode, MODE_IGNORE_TICKET)) {
|
||||||
SET(validated, FLAG_CHECK_USER);
|
SET(validated, FLAG_CHECK_USER);
|
||||||
} else {
|
} else {
|
||||||
if (user_uid == 0 || user_uid == runas_pw->pw_uid || user_is_exempt())
|
if (user_uid == 0 || user_uid == runas_pw->pw_uid || user_is_exempt())
|
||||||
@@ -140,7 +140,7 @@ check_user(validated, mode)
|
|||||||
rval = verify_user(auth_pw, prompt);
|
rval = verify_user(auth_pw, prompt);
|
||||||
}
|
}
|
||||||
/* Only update timestamp if user was validated. */
|
/* Only update timestamp if user was validated. */
|
||||||
if (ISSET(validated, VALIDATE_OK) && !ISSET(mode, MODE_INVALIDATE) && status != TS_ERROR)
|
if (ISSET(validated, VALIDATE_OK) && !ISSET(mode, MODE_IGNORE_TICKET) && status != TS_ERROR)
|
||||||
update_timestamp(timestampdir, timestampfile);
|
update_timestamp(timestampdir, timestampfile);
|
||||||
efree(timestampdir);
|
efree(timestampdir);
|
||||||
efree(timestampfile);
|
efree(timestampfile);
|
||||||
|
@@ -1232,7 +1232,7 @@ deserialize_info(char * const settings[], char * const user_info[])
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (MATCHES(*cur, "ignore_ticket=")) {
|
if (MATCHES(*cur, "ignore_ticket=")) {
|
||||||
/* XXX */
|
SET(flags, MODE_IGNORE_TICKET);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (MATCHES(*cur, "login_class=")) {
|
if (MATCHES(*cur, "login_class=")) {
|
||||||
|
@@ -130,6 +130,7 @@ struct sudo_user {
|
|||||||
#define MODE_PRESERVE_GROUPS 0x00200000
|
#define MODE_PRESERVE_GROUPS 0x00200000
|
||||||
#define MODE_PRESERVE_ENV 0x00400000
|
#define MODE_PRESERVE_ENV 0x00400000
|
||||||
#define MODE_NONINTERACTIVE 0x00800000
|
#define MODE_NONINTERACTIVE 0x00800000
|
||||||
|
#define MODE_IGNORE_TICKET 0x01000000
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Used with set_perms()
|
* Used with set_perms()
|
||||||
|
Reference in New Issue
Block a user