[pypy-dev] vfs.py - sandboxing with option to write
Armin Rigo
arigo at tunes.org
Tue Apr 13 10:12:25 CEST 2010
Hi Soren,
On Fri, Apr 09, 2010 at 03:50:41PM +0200, Søren Laursen wrote:
> On files that do exist and I want to write to then, I do not have a clue. As
> I can see I get the error even then I open the file using open( "myFile",
> "w").
The basics is what occurs when you do open("myfile","w") in the
sandboxed interpreter. First, the interpreter itself translates your
call to a call to the Posix function (man 2 open). That call is
intercepted by the sandboxing mechanism, and translated in sandlib.py in
a call to do_ll_os__ll_os_open(). That's where you can start tweaking.
So far, do_ll_os__ll_os_open() checks that we are calling it with
O_RDONLY and always raises EPERM otherwise. You need to change that by
carefully adding more cases there. Note that the get_node() method in
sandlib.py translates a Posix path given by do_ll_os__ll_os_open() --
which is the "myfile" specified in the interpreter -- into a "node",
which is so far a VFS File or Dir. You also need to add a few method,
at least do_ll_os__ll_os_write(), to handle writes.
A bientot,
Armin.
More information about the Pypy-dev
mailing list