我使用apparmor在Ubuntu 11.10上沙箱R.我注意到的一件事是,对于R创建的每个png或pdf图,它都会显示警告:
(process:4589): GLib-WARNING **: getpwuid_r(): failed due to: Permission denied.
但是,即使对/ etc / passwd的读取权限被拒绝,一切似乎都运行得很好。我不打算给R这些权限,因为它似乎没有必要我想做什么。然而,反复出现的警告有点令人讨厌。
R / src中的快速grep“getpwuid”显示了调用它的三个地方:
r-base-2.14.2/src/main/platform.c: stpwd = getpwuid(sb.st_uid);
r-base-2.14.2/src/unix/sys-unix.c: stpwd = getpwuid(getuid());
r-base-2.14.2/src/unix/sys-unix.c: stpwd = getpwuid(geteuid());
但是,我不清楚这是做什么的。
问题:
答案 0 :(得分:0)
R内部函数file.info(gdb中的do_fileinfo)似乎发现并返回大量有关文件的信息,包括用户名。
我认为它基本上是为R中加载的每个文件执行此操作,但它可能只是在程序包加载期间。
它使用getpwuid来执行此操作。
由于NIS响应时间长,我现在在R中遇到了性能问题。在程序包加载过程中,它会多次查找同一个用户,这会导致各种各样的问题。
我希望它会缓存。