Hello! Let’s say I have an executable file, but I’m unsure of the source, and may contain bugs/errors/malwares/bad things that can mess up my machine. I want to execute it anyway, but I want to make sure that it does not mess things up. Is it possible to create a “sandbox” folder, place the executable inside it, and then give all files inside that folder only write privileges inside that folder, and not outside? so that echo "hello" >> log.txt would work, but echo "hello" >> ~/log.txt would not?

EDIT: thanks to everyone for the answers! I decided to opt for a VM to minimize the risk, but chroot is probably a faster solution for not-so-dangerous files

  • jntesteves@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    I’ve created a tool for similar of use-cases: https://codeberg.org/contr/contr
    You could run your workload inside, say, an alpine container:

    cd path/to/evil/dir
    contr alpine
    ❯ # inside container, run dangerous program
    ❯ ./dangerous_program
    

    If the program needs extra dependencies, you’ll have to write a Containerfile and build an image with the dependencies installed – there’s an example in the repository. Just installing the dependencies at runtime inside the container is also an option, but all changes inside the container are lost on exit.