我正在使用 apparmor 在 Ubuntu 11.10 上对 R 进行沙盒处理。我注意到的一件事是,对于 R 创建的每个 png 或 pdf 图,它都会显示警告:
(process:4589): GLib-WARNING **: getpwuid_r(): failed due to: Permission denied.
然而,即使对 /etc/passwd 的读取访问被拒绝,一切似乎都运行良好。我不打算给 R 这些权限,因为我想做的事情似乎没有必要。然而,反复出现的警告有点烦人。
R/src 中“getpwuid”的快速 grep 显示了调用它的三个位置:
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());
但是,我并不清楚这是做什么的。
问题:
- 为什么 R 需要访问 passwd 文件来创建绘图?
- 有什么方法可以阻止 R 在写入 png 或 pdf 设备时尝试调用 getpwuid_r() (无需重新编译 R)?