this post was submitted on 15 Apr 2024
657 points (95.3% liked)

linuxmemes

21172 readers
1162 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack members of the community for any reason.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn. Even if you watch it on a Linux machine.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, and wants to interject for a moment. You can stop now.

  • Please report posts and comments that break these rules!

    founded 1 year ago
    MODERATORS
     
    you are viewing a single comment's thread
    view the rest of the comments
    [–] PoolloverNathan@programming.dev 2 points 6 months ago (1 children)

    Linux security noob here but can't you just run the browser in a chroot with everything isolated?

    [–] 0x4E4F@sh.itjust.works 1 points 6 months ago (1 children)

    Yeah, that should work too... but you don't get to see any of your local files...

    [–] PoolloverNathan@programming.dev 2 points 5 months ago* (last edited 5 months ago)

    Made a Nix library for this. For a simple setup you can just build this (untested) and run the result:

    import ./encase.nix {
      name = "firefox";
      rw.home.nathan = /home/nathan/home-for/firefox;
      # other dependencies it might need...
      tmp = /tmp; # fresh tmpfs for this sandbox
      network = true;
      command = pkgs.firefox;
    }
    

    It doesn't have user isolation yet, so if it escapes the browser and the chroot (which doesn't have a /proc unless you set proc = /proc;, and runs in a PID namespace either way) your files are still at risk. However, this is still pretty secure, and you can run the script itself as a different user (it creates a new UID namespace so chrooting can be done without root).