5 ms·
Would be cool if there was a tool that could detect that configured path was attempted to be opened, and redirect the open() syscall to the real path... But tha
by bheadmaster 4y ago
Would be cool if there was a tool that could detect that configured path was attempted to be opened, and redirect the open() syscall to the real path... But that would most likely require kernel support.
Boxxy seems good enough for userspace.
- notamy 4y agoI actually attempted using ptrace to rewrite syscalls first! It was... horribly painful, and didn't work anywhere near as well as the bind-mount version.
- oneplane 4y agoIn the past I used something like inotab to use an inotify-based trigger to pipe data from SSH to a different system that didn't have any NAS or SAN support, it might also work to detect 'who' is touching any files that boxxy has previously seen rules for. Perhaps still too tricky to make it do magic things and break programs in the process, but it could be used to audit who's working with what paths and let the user print a report so they know what apps to boxx up and make them behave.
- notamy 4y agoThat is an excellent idea! Something like could definitely be worth adding. It's why there's a "remount rootfs as ro" flag; that way anything not specified in rules is ro and misbehaving programs will explode.
- oneplane 4y agoLove exploding apps. That's what they get for eating my filesystem.
- yegle 4y agoFun fact, one layer of App Engine's sandbox from a couple years ago was implemented using ptrace. It will redirect filesystem IO to in-memory files.
- notamy 4y agoInteresting! That makes perfect sense, I just don't think I'm smart enough to use ptrace properly right now :P
- efreak 4y agoTry checking out proot?
- gary_0 4y agoWere you mostly going off the ptrace man page? I tried reading it to figure out ptrace and it made me feel not smart enough too.
- notamy 4y agoThe man page + Google! There's very few good examples of it, and I've accepted that I'm just not familiar enough with that specific problem space.
- lytigas 4y agoFor a structured approach to ptrace/syscall rewriting, you could try FB's reverie. I worked on and used it during an internship a few years back; it's pretty amazing at what it does. https://github.com/facebookexperimental/reverie https://github.com/facebookexperimental/reverie
- sjaak 4y agoLo and behold http://ordiluc.net/fs/libetc/ http://ordiluc.net/fs/libetc/