Linus Torvalds wrote on Wed, Jan 16, 2019:
Anybody willing to test the above patch instead? And replace the
|| capable(CAP_SYS_ADMIN)
check with something like
|| inode_permission(inode, MAY_WRITE) == 0
instead?
(This is obviously after you've reverted the "only check mmap
residency" patch..)
That seems to work on an x86_64 vm.
I've tested with the attached patch:
- root can lookup pages on any file I tried;
- user can lookup page on file it owns, assuming it can write to it
(e.g. it won't work on a 0400 file you own)
- user cannot lookup pages on e.g. /lib64/libc-2.28.so
There is a difference with your previous patch though, that used to list
no page in core when it didn't know; this patch lists pages as in core
when it refuses to tell. I don't think that's very important, though.
If anything, the 0400 user-owner file might be a problem in some edge
case (e.g. if you're preloading git directories, many objects are 0444);
should we *also* check ownership?...
--
Dominique