gpt4 book ai didi

R 和 getpwuid()

转载 作者:行者123 更新时间:2023-12-03 17:57:10 26 4
gpt4 key购买 nike

我正在使用 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)?
  • 最佳答案

    R 内部函数 file.info(gdb 中的 do_fileinfo)似乎可以发现并返回有关文件的大量信息,包括用户名。

    我认为它基本上对 R 中加载的每个文件都这样做,但它可能只是在包加载期间。

    它使用 getpwuid 来做到这一点。

    我现在在 R 中遇到性能问题 - 由于 NIS 响应的长延迟。它在包加载过程中多次查找同一个用户,这给我带来了各种各样的问题。

    我希望它会缓存。

    关于R 和 getpwuid(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9675917/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com