gpt4 book ai didi

linux - 用户相关的文件内容

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:42:43 26 4
gpt4 key购买 nike

由于某些不幸的原因,我必须将专有二进制库从每个工作站一个用户设置转换为每个工作站设置多个用户。

当前设置。用户使用链接到库的程序。该库读取系统范围的配置文件(使用硬编码路径,即/usr/local/thelib/main.conf ),该文件本身包含多个工作目录的多个路径。 wdir 本身包含一堆用户数据文件。

期望的结果。能够在同一工作站上管理多个用户。当然,用户不能通过该库读取或更改任何其他用户的数据,如果我设法为每个用户提供不同的工作目录,则 unix 权限应该会处理这个问题。

该库可能同时被多个用户使用,因此在运行时在/usr/local 中访问配置文件不是一个选项。

我正在考虑使用 FUSE 来为文件/usr/local/thelib/main.conf 提供不同的内容,这取决于环境变量或当前的 unix 用户。然后环境变量将用作生成配置文件的代码中的开关。

我对使用 Python、Perl 或 C 感到很自在。

工作站正在运行具有最新内核的最新 GNU/Linux Debian 或 Ubuntu 发行版。

所以。你怎么看:

  • 你会使用 FUSE 吗?
  • 你会制作另一种包装器吗 - 根据 janneb 下面建议使用 chroot(2) - ?
  • 使用 Linux 允许的其他东西?

我有点知道我能够制作出一些实用的东西,但我会听取社区的建议,因为我现在不想重新发明轮子。

谢谢。弗洛里安

最佳答案

您可以使用 LD_PRELOAD 加载一个小的 stub 来拦截 open() 调用,并打开 ~/.main.conf(假设这是一个共享对象)。然后在您的应用程序启动例程中,检查 LD_PRELOAD 是否设置为正确的值,如果不正确,请使用正确的环境重新启动应用程序。

关于linux - 用户相关的文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3232472/

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