我使用apparmor在Ubuntu 11.10上沙箱R. 我注意到的一件事是,对于R创建的每个png或pdf图,它都会显示警告:
(process:4589): GLib-WARNING **: getpwuid_r(): failed due to: Permission denied.
Run Code Online (Sandbox Code Playgroud)
但是,即使拒绝对/ 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());
Run Code Online (Sandbox Code Playgroud)
但是,我不清楚这是做什么的.
问题:
R 内部函数 file.info(gdb 中的 do_fileinfo)似乎发现并返回有关文件的大量信息,包括用户名。
我假设它基本上对 R 中加载的每个文件都执行此操作,但可能只是在包加载期间。
它使用 getpwuid 来执行此操作。
由于 NIS 响应延迟较长,我现在在 R 中遇到性能问题。它在包加载过程中多次查找同一用户,这给我带来了各种各样的问题。
我希望它能缓存。
| 归档时间: |
|
| 查看次数: |
588 次 |
| 最近记录: |