Is multi user nix safe?


I'm thinking of setting up multi user nix on a compute cluster.
The advantage would be to have a shared storage where common packages are reused, this is a great advantage compared to conda where every environment duplicates storage and inodes.

However, the packages are installed as root. As such I'm a bit wary of whether a user installing something could have the system run malware as root by installing a package.

What are the safeguards in place and how do I know I can trust them?

in reply to ranzispa

Assuming you're talking about Nix the package manager,

Nothing is actually "installed as root", except for stuff that the root user installs themselves. The Nix Store (where all the "derivations"/packages are stored) can be thought of more as a cache, just because a package is there doesn't mean it's used anywhere. Users don't get to choose the cache "key" (i.e. the directory name in /nix/store) either - it is determined by all the build instructions and dependencies needed to build the package, and Nix doesn't (well, at the very least shouldn't) give users any control about the package build process after it starts.

When users install something, Nix fetches or builds that package into /nix/store - which doesn't affect other users in any way - and then just symlinks that particular package into some user-owned directory in their $PATH (e.g. $HOME/.local/share/nix/profiles/default or so), which also doesn't affect root or other users in any way.

So, basically, if some user installs malware only they are affected - the fact that it's also in the shared /nix/store is irrelevant since there's nothing in other user's profiles or $PATH or whatever that references it in any way.

The most likely vulnerability is something like this:

  1. The attacker guesses the nix store path of some package that root will use in the future (e.g. glibc from a more up-to-date Nixpkgs version compared to what root currently uses) - note that users can't replace a derivation that's already in the store, so they need to guess a future derivation path
  2. The attacker forces Nix to build that package from source instead of fetching from a trusted substituter
  3. The attacker finds a way to breach Nix's sandbox during the build and inject their own backdoor into the resulting package ← this is the difficult part, there are currently no such known sandbox holes
  4. The attacker then waits until root starts using that package in the store, at which point the backdoor becomes actively ran as root.

I must add that this is theoretical and I don't think has ever happened in practice on a multi-user system.

Sorry, I'm pretty bad at explaining stuff, hopefully it makes some sense 😀

This entry was edited (today, 9:51 PM)

can I take the audio track from a video in one language and use it to replace the audio on a different file?


I'm trying to reduce the size of my video collection because I'm running out of storage.

My strategy is to look for smaller sized files to replace very large ones. When that fails, I am using handbrake to rencode. Its working, but very slowly due to my ancient computer. Redownloading is the much faster method.

Some titles, which were originally released as non-english, have existing small files, but the English audio is only available less commonly as a huge file.

Is it possible to redownload the non-english video and map the English audio onto it? It might be too much fooling around to get syncing correct.

Extra question, does anybody know how to set up sonarr/radarr to try to reduce filesize automatically? Ive been doing all the downloading by hand.

in reply to InnocentZero

It's a mix of --codec copy to not reencode the streams, --map 0:1 to select the audio stream of the input file and for merging back you need multiple -i input files and then --map 0:0 to map the first input file's video stream and --map 1 to map the second input file (English audio stream). Mappings may vary - use ffprobe to check your files.

Linux desktop use spikes to over 10% in North America for the first time. There is also a corresponding drop in Windows and OSX use.


The media in this post is not displayed to visitors. To view it, please go to the original post.

gs.statcounter.com/os-market-s…

radar.cloudflare.com/explorer?…

Cloudflare stats also seem to support peaks of 15% usage but around 9-10% on average. In the United States alone, the market share for Linux is nearly 12% now for the whole month and Cloudflare stats suggest peaks of up to 25% (!) Linux desktop usage on certain days and times.

The trendline suggests this is just the start. When will companies realize they cannot ignore Linux anymore?

This entry was edited (today, 5:54 PM)