You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.6 KiB
61 lines
2.6 KiB
diff -up sudo-1.8.23/plugins/sudoers/def_data.c.nowaitopt sudo-1.8.23/plugins/sudoers/def_data.c |
|
--- sudo-1.8.23/plugins/sudoers/def_data.c.nowaitopt 2018-06-18 09:36:34.249307795 +0200 |
|
+++ sudo-1.8.23/plugins/sudoers/def_data.c 2018-06-18 09:43:12.122986032 +0200 |
|
@@ -498,6 +498,10 @@ struct sudo_defs_types sudo_defs_table[] |
|
N_("Don't pre-resolve all group names"), |
|
NULL, |
|
}, { |
|
+ "cmnd_no_wait", T_FLAG, |
|
+ N_("Don't fork and wait for the command to finish, just exec it"), |
|
+ NULL, |
|
+ }, { |
|
NULL, 0, NULL |
|
} |
|
}; |
|
diff -up sudo-1.8.23/plugins/sudoers/def_data.h.nowaitopt sudo-1.8.23/plugins/sudoers/def_data.h |
|
--- sudo-1.8.23/plugins/sudoers/def_data.h.nowaitopt 2018-06-18 09:36:34.250307792 +0200 |
|
+++ sudo-1.8.23/plugins/sudoers/def_data.h 2018-06-18 09:43:44.541878327 +0200 |
|
@@ -228,6 +228,8 @@ |
|
#define def_case_insensitive_group (sudo_defs_table[I_CASE_INSENSITIVE_GROUP].sd_un.flag) |
|
#define I_LEGACY_GROUP_PROCESSING 114 |
|
#define def_legacy_group_processing (sudo_defs_table[I_LEGACY_GROUP_PROCESSING].sd_un.flag) |
|
+#define I_CMND_NO_WAIT 115 |
|
+#define def_cmnd_no_wait (sudo_defs_table[I_CMND_NO_WAIT].sd_un.flag) |
|
|
|
enum def_tuple { |
|
never, |
|
diff -up sudo-1.8.23/plugins/sudoers/def_data.in.nowaitopt sudo-1.8.23/plugins/sudoers/def_data.in |
|
--- sudo-1.8.23/plugins/sudoers/def_data.in.nowaitopt 2018-06-18 09:36:34.250307792 +0200 |
|
+++ sudo-1.8.23/plugins/sudoers/def_data.in 2018-06-18 09:45:00.076627403 +0200 |
|
@@ -360,3 +360,6 @@ case_insensitive_group |
|
legacy_group_processing |
|
T_FLAG |
|
"Don't pre-resolve all group names" |
|
+cmnd_no_wait |
|
+ T_FLAG |
|
+ "Don't fork and wait for the command to finish, just exec it" |
|
diff -up sudo-1.8.23/plugins/sudoers/policy.c.nowaitopt sudo-1.8.23/plugins/sudoers/policy.c |
|
diff -up sudo-1.8.23/plugins/sudoers/sudoers.c.nowaitopt sudo-1.8.23/plugins/sudoers/sudoers.c |
|
--- sudo-1.8.23/plugins/sudoers/sudoers.c.nowaitopt 2018-06-18 11:31:51.883751328 +0200 |
|
+++ sudo-1.8.23/plugins/sudoers/sudoers.c 2018-06-18 11:31:03.670899166 +0200 |
|
@@ -213,6 +213,20 @@ sudoers_policy_init(void *info, char * c |
|
def_match_group_by_gid = false; |
|
def_legacy_group_processing = false; |
|
} |
|
+ |
|
+ /* |
|
+ * Emulate cmnd_no_wait option by disabling PAM session, PTY allocation |
|
+ * and I/O logging. This will cause sudo to execute the given command |
|
+ * directly instead of forking a separate process for it. |
|
+ */ |
|
+ if (def_cmnd_no_wait) { |
|
+ def_pam_setcred = false; |
|
+ def_pam_session = false; |
|
+ def_use_pty = false; |
|
+ def_log_input = false; |
|
+ def_log_output = false; |
|
+ } |
|
+ |
|
cleanup: |
|
if (!restore_perms()) |
|
ret = -1;
|
|
|