Skip to content

[MacOS] Different temporary directory returned when run as sudo #335

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
samin-cf opened this issue Feb 26, 2025 · 5 comments
Open

[MacOS] Different temporary directory returned when run as sudo #335

samin-cf opened this issue Feb 26, 2025 · 5 comments

Comments

@samin-cf
Copy link

samin-cf commented Feb 26, 2025

With rust 1.85.0, this change was introduced which now results in a user-scoped temporary directory being returned by tempfile when the binary is run as sudo or as a service. Rust 1.84.1 and prior versions always returned /tmp if TMPDIR is unset and now that's changed.

It's likely not a problem for most cases, but I ran into an issue where I was passing the temporary directory to a process that's run as the nobody user which is unable to access the parent user's temp dir.

There may not be anything to change within tempfile. Just raising this issue for visiblity.

@Stebalien
Copy link
Owner

I was under the impression that rust always used the user-scoped temporary directories on MacOS. I guess I was wrong and I'm glad they finally made that change.

@Stebalien
Copy link
Owner

But I'll leave this issue open as I can see how it can cause regressions.

@domenkozar
Copy link

Could this WSL regression be related? cachix/devenv#1815 (comment)

@Stebalien
Copy link
Owner

No, this change is specific to MacOS and the symptoms are quite different.

@Stebalien
Copy link
Owner

Stebalien commented Apr 12, 2025

Actually, now I'm confused. What WSL are we talking about here (I assumed "Windows Subsystem for Linux")?

But the change here won't cause temporary directories/files to be created in random locations, it'll cause them to be created in the correct location (getconf DARWIN_USER_TEMP_DIR). The only issue is that that directory isn't accessible to other users.

Your symptoms look like someone is setting TMPDIR and/or calling tempfile::env::override_temp_dir.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants