File tree Expand file tree Collapse file tree 4 files changed +11
-1
lines changed
test-framework/sudo-compliance-tests/src/sudo Expand file tree Collapse file tree 4 files changed +11
-1
lines changed Original file line number Diff line number Diff line change @@ -62,6 +62,7 @@ fn add_extra_env(
62
62
context. current_user . gid . to_string ( ) . into ( ) ,
63
63
) ;
64
64
environment. insert ( "SUDO_USER" . into ( ) , context. current_user . name . clone ( ) . into ( ) ) ;
65
+ environment. insert ( "SUDO_HOME" . into ( ) , context. current_user . home . clone ( ) . into ( ) ) ;
65
66
// target user
66
67
environment
67
68
. entry ( "MAIL" . into ( ) )
Original file line number Diff line number Diff line change @@ -35,6 +35,7 @@ const TESTS: &str = "
35
35
SUDO_GID=1000
36
36
SUDO_UID=1000
37
37
SUDO_USER=test
38
+ SUDO_HOME=/home/test
38
39
HOME=/root
39
40
LOGNAME=root
40
41
USER=root
@@ -52,6 +53,7 @@ const TESTS: &str = "
52
53
SUDO_GID=1000
53
54
SUDO_UID=1000
54
55
SUDO_USER=test
56
+ SUDO_HOME=/home/test
55
57
HOME=/home/test
56
58
LOGNAME=test
57
59
USER=test
Original file line number Diff line number Diff line change @@ -173,6 +173,7 @@ fn some_vars_are_preserved() {
173
173
let term = "some-term" ;
174
174
let sudo_command = "some-sudo-command" ;
175
175
let sudo_user = "some-sudo-user" ;
176
+ let sudo_home = "some-sudo-home" ;
176
177
let sudo_uid = "some-sudo-uid" ;
177
178
let sudo_gid = "some-sudo-gid" ;
178
179
let stdout = Command :: new ( "env" )
@@ -189,6 +190,7 @@ fn some_vars_are_preserved() {
189
190
& format ! ( "TERM={term}" ) ,
190
191
& format ! ( "SUDO_COMMAND={sudo_command}" ) ,
191
192
& format ! ( "SUDO_USER={sudo_user}" ) ,
193
+ & format ! ( "SUDO_HOME={sudo_home}" ) ,
192
194
& format ! ( "SUDO_UID={sudo_uid}" ) ,
193
195
& format ! ( "SUDO_GID={sudo_gid}" ) ,
194
196
& sudo_abs_path,
Original file line number Diff line number Diff line change @@ -311,7 +311,7 @@ fn vars_with_target_user_specific_values(env_list: EnvList) {
311
311
fn sudo_env_vars ( env_list : EnvList ) {
312
312
let env = Env ( [
313
313
SUDOERS_ALL_ALL_NOPASSWD ,
314
- & format ! ( "Defaults {env_list} = \" SUDO_COMMAND SUDO_GID SUDO_UID SUDO_USER\" " ) ,
314
+ & format ! ( "Defaults {env_list} = \" SUDO_COMMAND SUDO_GID SUDO_UID SUDO_USER SUDO_HOME \" " ) ,
315
315
] )
316
316
. build ( ) ;
317
317
@@ -320,6 +320,7 @@ fn sudo_env_vars(env_list: EnvList) {
320
320
. arg ( "SUDO_GID=gid" )
321
321
. arg ( "SUDO_UID=uid" )
322
322
. arg ( "SUDO_USER=user" )
323
+ . arg ( "SUDO_HOME=sudo_home" )
323
324
. args ( [ "sudo" , "env" ] )
324
325
. output ( & env)
325
326
. stdout ( ) ;
@@ -329,6 +330,10 @@ fn sudo_env_vars(env_list: EnvList) {
329
330
assert_eq ! ( Some ( "0" ) , sudo_env. get( "SUDO_GID" ) . copied( ) ) ;
330
331
assert_eq ! ( Some ( "0" ) , sudo_env. get( "SUDO_UID" ) . copied( ) ) ;
331
332
assert_eq ! ( Some ( "root" ) , sudo_env. get( "SUDO_USER" ) . copied( ) ) ;
333
+
334
+ if let Some ( val) = sudo_env. get ( "SUDO_HOME" ) . copied ( ) {
335
+ assert_eq ! ( "/root" , val) ;
336
+ }
332
337
}
333
338
334
339
fn user_set_to_preserved_logname_value ( env_list : EnvList ) {
You can’t perform that action at this time.
0 commit comments