Skip to content
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

executing bin from /tmp causes trouble on some unix distributions #3

Closed
bcoe opened this issue Jul 29, 2015 · 7 comments
Closed

executing bin from /tmp causes trouble on some unix distributions #3

bcoe opened this issue Jul 29, 2015 · 7 comments

Comments

@bcoe
Copy link
Member

bcoe commented Jul 29, 2015

rvagg/through2#48, CC: @rvagg

@rvagg
Copy link

rvagg commented Jul 29, 2015

perhaps switch to using cwd if EPERM

@isaacs
Copy link
Collaborator

isaacs commented Jul 29, 2015

Another idea is just to write this to somewhere in $HOME. It should always clean up after itself, but at least it could be in something like ~/.node-spawn-wrap/... so you can tell what it is.

@stevemao
Copy link

would $HOME have the same problem as /tmp/? could you mount it as noexec?

isaacs added a commit that referenced this issue Jul 29, 2015
The /tmp mount is sometimes mounted as noexec, especially on systems
where tmp is world-writable.

Even though these shims ARE extremely temporary (they are deleted at the
end of the process), it makes more sense to put them in $HOME rather
than /tmp.

Closes #3
@rvagg
Copy link

rvagg commented Jul 29, 2015

@stevemao yes, I've never seen that done though

@stevemao
Copy link

@rvagg
Does it mean it potentially is still a problem?

@rvagg
Copy link

rvagg commented Jul 29, 2015

@stevemao yes, but an unlikely one, you could fall-back to cwd or __dirname but ... there are no guarantees anywhere!

@isaacs
Copy link
Collaborator

isaacs commented Jul 29, 2015

The one place we KNOW you can exec something (path.dirname(process.execPath)) we probably don't have permission to write to. So it's a bit of a sticky situation no matter what. $HOME is the best bet. Breaks travis for some reason I can't owrk out though. Oh well, bedtime for me.

@isaacs isaacs closed this as completed in #4 Sep 7, 2015
Krinkle added a commit to Krinkle/nyc that referenced this issue Jan 3, 2019
By default, spawn-wrap writes temporary files to HOME.
It used to be /tmp, but it changed that to HOME to support
environments that have 'noexec' flags set on their tmpfs mount.
Ref istanbuljs/spawn-wrap#3.

The problem with this is that nyc now no longer works in environments
without a (writable) home directory (e.g. the 'nobody' user on
Linux).

While it is fine to fallback to HOME, it should write elsewhere
if that is unavailable, and ideally in a way that doesn't require
every sysadmin or end-user to hardcode some environmnet variable
in their package.json specifically for nyc or spawn-wrap.

A common way to communicate this intent is with the XDG_CACHE_HOME
environment variable.

Fixes istanbuljs#79.
Krinkle added a commit to Krinkle/nyc that referenced this issue Jan 3, 2019
By default, spawn-wrap writes temporary files to HOME.
It used to be /tmp, but it changed that to HOME to support
environments that have 'noexec' flags set on their tmpfs mount.
Ref istanbuljs/spawn-wrap#3.

The problem with this is that nyc now no longer works in environments
without a (writable) home directory (e.g. the 'nobody' user on
Linux).

While it is fine to fallback to HOME, it should write elsewhere
if that is unavailable, and ideally in a way that doesn't require
every sysadmin or end-user to hardcode some environmnet variable
in their package.json specifically for nyc or spawn-wrap.

A common way to communicate this intent is with the XDG_CACHE_HOME
environment variable.

Fixes istanbuljs#951.
Krinkle added a commit to Krinkle/nyc that referenced this issue Jan 3, 2019
By default, spawn-wrap writes temporary files to HOME.
It used to be /tmp, but it changed that to HOME to support
environments that have 'noexec' flags set on their tmpfs mount.
Ref istanbuljs/spawn-wrap#3.

The problem with this is that nyc now no longer works in environments
without a (writable) home directory (e.g. the 'nobody' user on
Linux).

While it is fine to fallback to HOME, it should write elsewhere
if that is unavailable, and ideally in a way that doesn't require
every sysadmin or end-user to hardcode some environment variable
in their package.json specifically for nyc or spawn-wrap.

A common way to communicate this intent is with the XDG_CACHE_HOME
environment variable.

Fixes istanbuljs#951.
Krinkle added a commit to Krinkle/nyc that referenced this issue Jan 15, 2019
By default, spawn-wrap writes temporary files to HOME.
It used to be /tmp, but it changed that to HOME to support
environments that have 'noexec' flags set on their tmpfs mount.
Ref istanbuljs/spawn-wrap#3.

The problem with this is that nyc now no longer works in environments
without a (writable) home directory (e.g. the 'nobody' user on
Linux).

While it is fine to fallback to HOME, it should write elsewhere
if that is unavailable, and ideally in a way that doesn't require
every sysadmin or end-user to hardcode some environment variable
in their package.json specifically for nyc or spawn-wrap.

A common way to communicate this intent is with the XDG_CACHE_HOME
environment variable.

Fixes istanbuljs#951.
Krinkle added a commit to Krinkle/nyc that referenced this issue Jan 15, 2019
By default, spawn-wrap writes temporary files to HOME.
It used to be /tmp, but it changed that to HOME to support
environments that have 'noexec' flags set on their tmpfs mount.
Ref istanbuljs/spawn-wrap#3.

The problem with this is that nyc now no longer works in environments
without a (writable) home directory (e.g. the 'nobody' user on
Linux).

While it is fine to fallback to HOME, it should write elsewhere
if that is unavailable, and ideally in a way that doesn't require
every sysadmin or end-user to hardcode some environment variable
in their package.json specifically for nyc or spawn-wrap.

A common way to communicate this intent is with the XDG_CACHE_HOME
environment variable.

Fixes istanbuljs#951.
coreyfarrell pushed a commit to istanbuljs/nyc that referenced this issue Jan 15, 2019
By default, spawn-wrap writes temporary files to HOME.
It used to be /tmp, but it changed that to HOME to support
environments that have 'noexec' flags set on their tmpfs mount.
Ref istanbuljs/spawn-wrap#3.

The problem with this is that nyc now no longer works in environments
without a (writable) home directory (e.g. the 'nobody' user on
Linux).

While it is fine to fallback to HOME, it should write elsewhere
if that is unavailable, and ideally in a way that doesn't require
every sysadmin or end-user to hardcode some environment variable
in their package.json specifically for nyc or spawn-wrap.

A common way to communicate this intent is with the XDG_CACHE_HOME
environment variable.

Fixes #951.
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

4 participants