Skip to content

Commit 5d7afac

Browse files
committed
add SUDO_HOME (fixes #928)
1 parent 99ba81e commit 5d7afac

File tree

3 files changed

+5
-1
lines changed

3 files changed

+5
-1
lines changed

src/sudo/env/environment.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ fn add_extra_env(
6262
context.current_user.gid.to_string().into(),
6363
);
6464
environment.insert("SUDO_USER".into(), context.current_user.name.clone().into());
65+
environment.insert("SUDO_HOME".into(), context.current_user.home.clone().into());
6566
// target user
6667
environment
6768
.entry("MAIL".into())

test-framework/sudo-compliance-tests/src/sudo/env_reset.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ fn some_vars_are_preserved() -> Result<()> {
195195
&format!("TERM={term}"),
196196
&format!("SUDO_COMMAND={sudo_command}"),
197197
&format!("SUDO_USER={sudo_user}"),
198+
&format!("SUDO_HOME={sudo_home}"),
198199
&format!("SUDO_UID={sudo_uid}"),
199200
&format!("SUDO_GID={sudo_gid}"),
200201
&sudo_abs_path,

test-framework/sudo-compliance-tests/src/sudo/sudoers/env.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ fn vars_with_target_user_specific_values(env_list: EnvList) -> Result<()> {
332332
fn sudo_env_vars(env_list: EnvList) -> Result<()> {
333333
let env = Env([
334334
SUDOERS_ALL_ALL_NOPASSWD,
335-
&format!("Defaults {env_list} = \"SUDO_COMMAND SUDO_GID SUDO_UID SUDO_USER\""),
335+
&format!("Defaults {env_list} = \"SUDO_COMMAND SUDO_GID SUDO_UID SUDO_USER SUDO_HOME\""),
336336
])
337337
.build()?;
338338

@@ -341,6 +341,7 @@ fn sudo_env_vars(env_list: EnvList) -> Result<()> {
341341
.arg("SUDO_GID=gid")
342342
.arg("SUDO_UID=uid")
343343
.arg("SUDO_USER=user")
344+
.arg("SUDO_HOME=sudo_home")
344345
.args(["sudo", "env"])
345346
.output(&env)?
346347
.stdout()?;
@@ -350,6 +351,7 @@ fn sudo_env_vars(env_list: EnvList) -> Result<()> {
350351
assert_eq!(Some("0"), sudo_env.get("SUDO_GID").copied());
351352
assert_eq!(Some("0"), sudo_env.get("SUDO_UID").copied());
352353
assert_eq!(Some("root"), sudo_env.get("SUDO_USER").copied());
354+
assert_eq!(Some("/root"), sudo_env.get("SUDO_HOME").copied());
353355

354356
Ok(())
355357
}

0 commit comments

Comments
 (0)