【发布时间】:2014-10-15 18:21:15
【问题描述】:
如果您在以 root 身份登录时从命令行运行 ruby bundler,则会收到以下警告:
不要以 root 身份运行 Bundler。如果需要,Bundler 可以要求 sudo, 并以 root 身份安装你的包将破坏这个应用程序 这台机器上的非 root 用户。
以 root 身份运行 bundler 对其安装的 gem 有什么确切的区别?
是否与它为每个 gem 安装的实际文件的权限有关? Ruby 是否会尝试以非 root 用户身份访问 gem 文件(如果是,Ruby 将使用哪个用户/组,我将如何找到)?
由于捆绑程序被用作根用户而损坏的应用程序会出现什么症状?
我询问的具体原因是因为我试图在一个非常基本的 Centos VPS 上使用捆绑程序,我不需要设置任何非 root 用户。我是having other problems with gems installed via bundler(Error: file to import not found or unreadable: gemname,尽管有问题的 gem 存在于gem list),我想知道是否以 root 身份通过 bundler 安装 gem 可能会使文件对 Ruby 不可读。
我想弄清楚我是否确实需要设置一个非 root 用户帐户,纯粹是为了运行 bundler,如果我这样做了,这个用户需要哪些组和权限才能允许 Ruby 运行 gems bundler 安装。
或者我可以只 chown 或 chgrp gem 文件夹吗?如果是这样,它是否取决于 Ruby 的安装方式? (我使用了 RVM,我的 gems 最终在 /usr/local/rvm/gems/ 中,归 rvm 组中的 root 所有)This loosely related question's answer implies that unspecified aspects of how Ruby is installed influence bundler's permissions requirements。
研究“不要以 root 身份运行捆绑程序”消息仅出现 an unanswered question 和 complaints that this warning is apparently "like it saying to go to sleep at 8PM" (link contains NSFW language)。
【问题讨论】: