Rename script -> transcript
This commit is contained in:
@@ -315,7 +315,7 @@ struct sudo_defs_types sudo_defs_table[] = {
|
|||||||
"The umask specified in sudoers will override the user's, even if it is more permissive",
|
"The umask specified in sudoers will override the user's, even if it is more permissive",
|
||||||
NULL,
|
NULL,
|
||||||
}, {
|
}, {
|
||||||
"script", T_FLAG,
|
"transcript", T_FLAG,
|
||||||
"Log a transcript of the command being run",
|
"Log a transcript of the command being run",
|
||||||
NULL,
|
NULL,
|
||||||
}, {
|
}, {
|
||||||
|
@@ -144,8 +144,8 @@
|
|||||||
#define I_FAST_GLOB 71
|
#define I_FAST_GLOB 71
|
||||||
#define def_umask_override (sudo_defs_table[72].sd_un.flag)
|
#define def_umask_override (sudo_defs_table[72].sd_un.flag)
|
||||||
#define I_UMASK_OVERRIDE 72
|
#define I_UMASK_OVERRIDE 72
|
||||||
#define def_script (sudo_defs_table[73].sd_un.flag)
|
#define def_transcript (sudo_defs_table[73].sd_un.flag)
|
||||||
#define I_SCRIPT 73
|
#define I_TRANSCRIPT 73
|
||||||
|
|
||||||
enum def_tupple {
|
enum def_tupple {
|
||||||
never,
|
never,
|
||||||
|
@@ -232,6 +232,6 @@ fast_glob
|
|||||||
umask_override
|
umask_override
|
||||||
T_FLAG
|
T_FLAG
|
||||||
"The umask specified in sudoers will override the user's, even if it is more permissive"
|
"The umask specified in sudoers will override the user's, even if it is more permissive"
|
||||||
script
|
transcript
|
||||||
T_FLAG
|
T_FLAG
|
||||||
"Log a transcript of the command being run"
|
"Log a transcript of the command being run"
|
||||||
|
20
gram.c
20
gram.c
@@ -166,8 +166,8 @@ typedef union {
|
|||||||
#define EXEC 272
|
#define EXEC 272
|
||||||
#define SETENV 273
|
#define SETENV 273
|
||||||
#define NOSETENV 274
|
#define NOSETENV 274
|
||||||
#define SCRIPT 275
|
#define TRANSCRIPT 275
|
||||||
#define NOSCRIPT 276
|
#define NOTRANSCRIPT 276
|
||||||
#define ALL 277
|
#define ALL 277
|
||||||
#define COMMENT 278
|
#define COMMENT 278
|
||||||
#define HOSTALIAS 279
|
#define HOSTALIAS 279
|
||||||
@@ -498,7 +498,7 @@ char *yyname[] =
|
|||||||
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
||||||
"COMMAND","ALIAS","DEFVAR","NTWKADDR","NETGROUP","USERGROUP","WORD","DEFAULTS",
|
"COMMAND","ALIAS","DEFVAR","NTWKADDR","NETGROUP","USERGROUP","WORD","DEFAULTS",
|
||||||
"DEFAULTS_HOST","DEFAULTS_USER","DEFAULTS_RUNAS","DEFAULTS_CMND","NOPASSWD",
|
"DEFAULTS_HOST","DEFAULTS_USER","DEFAULTS_RUNAS","DEFAULTS_CMND","NOPASSWD",
|
||||||
"PASSWD","NOEXEC","EXEC","SETENV","NOSETENV","SCRIPT","NOSCRIPT","ALL",
|
"PASSWD","NOEXEC","EXEC","SETENV","NOSETENV","TRANSCRIPT","NOTRANSCRIPT","ALL",
|
||||||
"COMMENT","HOSTALIAS","CMNDALIAS","USERALIAS","RUNASALIAS","ERROR","TYPE",
|
"COMMENT","HOSTALIAS","CMNDALIAS","USERALIAS","RUNASALIAS","ERROR","TYPE",
|
||||||
"ROLE",
|
"ROLE",
|
||||||
};
|
};
|
||||||
@@ -565,8 +565,8 @@ char *yyrule[] =
|
|||||||
"cmndtag : cmndtag EXEC",
|
"cmndtag : cmndtag EXEC",
|
||||||
"cmndtag : cmndtag SETENV",
|
"cmndtag : cmndtag SETENV",
|
||||||
"cmndtag : cmndtag NOSETENV",
|
"cmndtag : cmndtag NOSETENV",
|
||||||
"cmndtag : cmndtag SCRIPT",
|
"cmndtag : cmndtag TRANSCRIPT",
|
||||||
"cmndtag : cmndtag NOSCRIPT",
|
"cmndtag : cmndtag NOTRANSCRIPT",
|
||||||
"cmnd : ALL",
|
"cmnd : ALL",
|
||||||
"cmnd : ALIAS",
|
"cmnd : ALIAS",
|
||||||
"cmnd : COMMAND",
|
"cmnd : COMMAND",
|
||||||
@@ -1219,8 +1219,8 @@ case 35:
|
|||||||
if (yyvsp[0].cmndspec->tags.setenv == UNSPEC &&
|
if (yyvsp[0].cmndspec->tags.setenv == UNSPEC &&
|
||||||
yyvsp[0].cmndspec->prev->tags.setenv != IMPLIED)
|
yyvsp[0].cmndspec->prev->tags.setenv != IMPLIED)
|
||||||
yyvsp[0].cmndspec->tags.setenv = yyvsp[0].cmndspec->prev->tags.setenv;
|
yyvsp[0].cmndspec->tags.setenv = yyvsp[0].cmndspec->prev->tags.setenv;
|
||||||
if (yyvsp[0].cmndspec->tags.script == UNSPEC)
|
if (yyvsp[0].cmndspec->tags.transcript == UNSPEC)
|
||||||
yyvsp[0].cmndspec->tags.script = yyvsp[0].cmndspec->prev->tags.script;
|
yyvsp[0].cmndspec->tags.transcript = yyvsp[0].cmndspec->prev->tags.transcript;
|
||||||
if ((tq_empty(&yyvsp[0].cmndspec->runasuserlist) &&
|
if ((tq_empty(&yyvsp[0].cmndspec->runasuserlist) &&
|
||||||
tq_empty(&yyvsp[0].cmndspec->runasgrouplist)) &&
|
tq_empty(&yyvsp[0].cmndspec->runasgrouplist)) &&
|
||||||
(!tq_empty(&yyvsp[0].cmndspec->prev->runasuserlist) ||
|
(!tq_empty(&yyvsp[0].cmndspec->prev->runasuserlist) ||
|
||||||
@@ -1358,7 +1358,7 @@ break;
|
|||||||
case 51:
|
case 51:
|
||||||
#line 428 "gram.y"
|
#line 428 "gram.y"
|
||||||
{
|
{
|
||||||
yyval.tag.nopasswd = yyval.tag.noexec = yyval.tag.setenv = yyval.tag.script = UNSPEC;
|
yyval.tag.nopasswd = yyval.tag.noexec = yyval.tag.setenv = yyval.tag.transcript = UNSPEC;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 52:
|
case 52:
|
||||||
@@ -1400,13 +1400,13 @@ break;
|
|||||||
case 58:
|
case 58:
|
||||||
#line 449 "gram.y"
|
#line 449 "gram.y"
|
||||||
{
|
{
|
||||||
yyval.tag.script = TRUE;
|
yyval.tag.transcript = TRUE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 59:
|
case 59:
|
||||||
#line 452 "gram.y"
|
#line 452 "gram.y"
|
||||||
{
|
{
|
||||||
yyval.tag.script = FALSE;
|
yyval.tag.transcript = FALSE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 60:
|
case 60:
|
||||||
|
4
gram.h
4
gram.h
@@ -16,8 +16,8 @@
|
|||||||
#define EXEC 272
|
#define EXEC 272
|
||||||
#define SETENV 273
|
#define SETENV 273
|
||||||
#define NOSETENV 274
|
#define NOSETENV 274
|
||||||
#define SCRIPT 275
|
#define TRANSCRIPT 275
|
||||||
#define NOSCRIPT 276
|
#define NOTRANSCRIPT 276
|
||||||
#define ALL 277
|
#define ALL 277
|
||||||
#define COMMENT 278
|
#define COMMENT 278
|
||||||
#define HOSTALIAS 279
|
#define HOSTALIAS 279
|
||||||
|
18
gram.y
18
gram.y
@@ -146,8 +146,8 @@ yyerror(s)
|
|||||||
%token <tok> EXEC /* don't preload dummy execve() */
|
%token <tok> EXEC /* don't preload dummy execve() */
|
||||||
%token <tok> SETENV /* user may set environment for cmnd */
|
%token <tok> SETENV /* user may set environment for cmnd */
|
||||||
%token <tok> NOSETENV /* user may not set environment */
|
%token <tok> NOSETENV /* user may not set environment */
|
||||||
%token <tok> SCRIPT /* log a transcript of the cmnd */
|
%token <tok> TRANSCRIPT /* log a transcript of the cmnd */
|
||||||
%token <tok> NOSCRIPT /* don't log a transcript of the cmnd */
|
%token <tok> NOTRANSCRIPT /* don't log a transcript of the cmnd */
|
||||||
%token <tok> ALL /* ALL keyword */
|
%token <tok> ALL /* ALL keyword */
|
||||||
%token <tok> COMMENT /* comment and/or carriage return */
|
%token <tok> COMMENT /* comment and/or carriage return */
|
||||||
%token <tok> HOSTALIAS /* Host_Alias keyword */
|
%token <tok> HOSTALIAS /* Host_Alias keyword */
|
||||||
@@ -319,8 +319,8 @@ cmndspeclist : cmndspec
|
|||||||
if ($3->tags.setenv == UNSPEC &&
|
if ($3->tags.setenv == UNSPEC &&
|
||||||
$3->prev->tags.setenv != IMPLIED)
|
$3->prev->tags.setenv != IMPLIED)
|
||||||
$3->tags.setenv = $3->prev->tags.setenv;
|
$3->tags.setenv = $3->prev->tags.setenv;
|
||||||
if ($3->tags.script == UNSPEC)
|
if ($3->tags.transcript == UNSPEC)
|
||||||
$3->tags.script = $3->prev->tags.script;
|
$3->tags.transcript = $3->prev->tags.transcript;
|
||||||
if ((tq_empty(&$3->runasuserlist) &&
|
if ((tq_empty(&$3->runasuserlist) &&
|
||||||
tq_empty(&$3->runasgrouplist)) &&
|
tq_empty(&$3->runasgrouplist)) &&
|
||||||
(!tq_empty(&$3->prev->runasuserlist) ||
|
(!tq_empty(&$3->prev->runasuserlist) ||
|
||||||
@@ -426,7 +426,7 @@ runaslist : userlist {
|
|||||||
;
|
;
|
||||||
|
|
||||||
cmndtag : /* empty */ {
|
cmndtag : /* empty */ {
|
||||||
$$.nopasswd = $$.noexec = $$.setenv = $$.script = UNSPEC;
|
$$.nopasswd = $$.noexec = $$.setenv = $$.transcript = UNSPEC;
|
||||||
}
|
}
|
||||||
| cmndtag NOPASSWD {
|
| cmndtag NOPASSWD {
|
||||||
$$.nopasswd = TRUE;
|
$$.nopasswd = TRUE;
|
||||||
@@ -446,11 +446,11 @@ cmndtag : /* empty */ {
|
|||||||
| cmndtag NOSETENV {
|
| cmndtag NOSETENV {
|
||||||
$$.setenv = FALSE;
|
$$.setenv = FALSE;
|
||||||
}
|
}
|
||||||
| cmndtag SCRIPT {
|
| cmndtag TRANSCRIPT {
|
||||||
$$.script = TRUE;
|
$$.transcript = TRUE;
|
||||||
}
|
}
|
||||||
| cmndtag NOSCRIPT {
|
| cmndtag NOTRANSCRIPT {
|
||||||
$$.script = FALSE;
|
$$.transcript = FALSE;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
|
14
parse.c
14
parse.c
@@ -254,8 +254,8 @@ sudo_file_lookup(nss, validated, pwflag)
|
|||||||
def_noexec = tags->noexec;
|
def_noexec = tags->noexec;
|
||||||
if (tags->setenv != UNSPEC)
|
if (tags->setenv != UNSPEC)
|
||||||
def_setenv = tags->setenv;
|
def_setenv = tags->setenv;
|
||||||
if (tags->script != UNSPEC)
|
if (tags->transcript != UNSPEC)
|
||||||
def_script = tags->script;
|
def_transcript = tags->transcript;
|
||||||
}
|
}
|
||||||
} else if (match == DENY) {
|
} else if (match == DENY) {
|
||||||
SET(validated, VALIDATE_NOT_OK);
|
SET(validated, VALIDATE_NOT_OK);
|
||||||
@@ -297,10 +297,10 @@ sudo_file_append_cmnd(cs, tags, lbuf)
|
|||||||
"PASSWD: ", NULL);
|
"PASSWD: ", NULL);
|
||||||
tags->nopasswd = cs->tags.nopasswd;
|
tags->nopasswd = cs->tags.nopasswd;
|
||||||
}
|
}
|
||||||
if (TAG_CHANGED(script)) {
|
if (TAG_CHANGED(transcript)) {
|
||||||
lbuf_append(lbuf, cs->tags.script ? "SCRIPT: " :
|
lbuf_append(lbuf, cs->tags.transcript ? "SCRIPT: " :
|
||||||
"NOSCRIPT: ", NULL);
|
"NOSCRIPT: ", NULL);
|
||||||
tags->script = cs->tags.script;
|
tags->transcript = cs->tags.transcript;
|
||||||
}
|
}
|
||||||
m = cs->cmnd;
|
m = cs->cmnd;
|
||||||
print_member(lbuf, m->name, m->type, m->negated,
|
print_member(lbuf, m->name, m->type, m->negated,
|
||||||
@@ -323,7 +323,7 @@ sudo_file_display_priv_short(pw, us, lbuf)
|
|||||||
tags.noexec = UNSPEC;
|
tags.noexec = UNSPEC;
|
||||||
tags.setenv = UNSPEC;
|
tags.setenv = UNSPEC;
|
||||||
tags.nopasswd = UNSPEC;
|
tags.nopasswd = UNSPEC;
|
||||||
tags.script = UNSPEC;
|
tags.transcript = UNSPEC;
|
||||||
lbuf_append(lbuf, " ", NULL);
|
lbuf_append(lbuf, " ", NULL);
|
||||||
tq_foreach_fwd(&priv->cmndlist, cs) {
|
tq_foreach_fwd(&priv->cmndlist, cs) {
|
||||||
if (cs != tq_first(&priv->cmndlist))
|
if (cs != tq_first(&priv->cmndlist))
|
||||||
@@ -375,7 +375,7 @@ sudo_file_display_priv_long(pw, us, lbuf)
|
|||||||
tags.noexec = UNSPEC;
|
tags.noexec = UNSPEC;
|
||||||
tags.setenv = UNSPEC;
|
tags.setenv = UNSPEC;
|
||||||
tags.nopasswd = UNSPEC;
|
tags.nopasswd = UNSPEC;
|
||||||
tags.script = UNSPEC;
|
tags.transcript = UNSPEC;
|
||||||
lbuf_print(lbuf); /* force a newline */
|
lbuf_print(lbuf); /* force a newline */
|
||||||
lbuf_append(lbuf, "Sudoers entry:", NULL);
|
lbuf_append(lbuf, "Sudoers entry:", NULL);
|
||||||
lbuf_print(lbuf);
|
lbuf_print(lbuf);
|
||||||
|
2
parse.h
2
parse.h
@@ -45,7 +45,7 @@ struct cmndtag {
|
|||||||
__signed char nopasswd;
|
__signed char nopasswd;
|
||||||
__signed char noexec;
|
__signed char noexec;
|
||||||
__signed char setenv;
|
__signed char setenv;
|
||||||
__signed char script;
|
__signed char transcript;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
10
sudo.c
10
sudo.c
@@ -461,7 +461,7 @@ main(argc, argv, envp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Get next session ID so we can log it. */
|
/* Get next session ID so we can log it. */
|
||||||
if (def_script && ISSET(sudo_mode, (MODE_RUN | MODE_EDIT)))
|
if (def_transcript && ISSET(sudo_mode, (MODE_RUN | MODE_EDIT)))
|
||||||
script_nextid();
|
script_nextid();
|
||||||
|
|
||||||
log_allowed(validated);
|
log_allowed(validated);
|
||||||
@@ -503,7 +503,7 @@ main(argc, argv, envp)
|
|||||||
audit_success(NewArgv);
|
audit_success(NewArgv);
|
||||||
|
|
||||||
/* Open tty as needed */
|
/* Open tty as needed */
|
||||||
if (def_script)
|
if (def_transcript)
|
||||||
script_setup();
|
script_setup();
|
||||||
|
|
||||||
/* Become specified user or root if executing a command. */
|
/* Become specified user or root if executing a command. */
|
||||||
@@ -549,7 +549,7 @@ main(argc, argv, envp)
|
|||||||
sudo_endgrent();
|
sudo_endgrent();
|
||||||
|
|
||||||
/* Move pty master/slave to low numbered fd and close the rest. */
|
/* Move pty master/slave to low numbered fd and close the rest. */
|
||||||
fd = def_script ? script_duplow(def_closefrom) : def_closefrom;
|
fd = def_transcript ? script_duplow(def_closefrom) : def_closefrom;
|
||||||
closefrom(fd);
|
closefrom(fd);
|
||||||
|
|
||||||
#ifndef PROFILING
|
#ifndef PROFILING
|
||||||
@@ -563,7 +563,7 @@ main(argc, argv, envp)
|
|||||||
selinux_exec(user_role, user_type, NewArgv,
|
selinux_exec(user_role, user_type, NewArgv,
|
||||||
ISSET(sudo_mode, MODE_LOGIN_SHELL));
|
ISSET(sudo_mode, MODE_LOGIN_SHELL));
|
||||||
#endif
|
#endif
|
||||||
if (def_script)
|
if (def_transcript)
|
||||||
script_execv(safe_cmnd, NewArgv);
|
script_execv(safe_cmnd, NewArgv);
|
||||||
else
|
else
|
||||||
execv(safe_cmnd, NewArgv);
|
execv(safe_cmnd, NewArgv);
|
||||||
@@ -1460,7 +1460,7 @@ cleanup(gotsignal)
|
|||||||
sudo_endpwent();
|
sudo_endpwent();
|
||||||
sudo_endgrent();
|
sudo_endgrent();
|
||||||
}
|
}
|
||||||
if (def_script)
|
if (def_transcript)
|
||||||
term_restore(STDIN_FILENO);
|
term_restore(STDIN_FILENO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user