sudo 与原始配置文件

sudo 与原始配置文件

我需要启动具有 root 权限的应用程序,但该应用程序需要访问原始用户的配置文件......因此,仅使用 sudo 启动应用程序会导致应用程序启动不正确。

如何使用 root 权限启动应用程序,以便它仍然使用最初登录用户的配置文件。

这是 Mac OS X 10.10

答案1

应用程序通常读取环境变量指示的目录下的每个用户文件HOME

默认情况下, sudo 不会更改 的值HOME,因此它仍然指向原始用户的主目录。有几个选项可以使 sudo 将其更改为目标用户的主目录,因此请确保它们都没有打开:

  • 不要always_set_home在文件中设置该选项sudoers
  • 如果您env_reset设置了选项,请将其包含HOMEenv_keep列表中。
  • 不要传递-H,-s-i命令行选项。

要仅为一个命令设置选项sudoers,请使用类似

Defaults !myapp env_keep+=HOME,!always_set_home

如果该HOME变量被保留,但应用程序不在那里查找,则您需要找到一种特定于应用程序的方法来告诉它注意该HOME变量,而不是在有效 UID 的主目录中查找。

请注意,要求应用程序以 root 身份运行但读取属于物理用户的文件的情况并不常见。也许这些文件应该位于系统配置目录中?

相关内容