【问题标题】:Is it a good practice to always use 'root' user in development environment? [closed]在开发环境中始终使用“root”用户是一种好习惯吗? [关闭]
【发布时间】:2015-11-11 02:05:40
【问题描述】:

在 Linux 环境中进行软件开发时有三种选择:

  1. 使用您自己的用户(例如 mahdi)
  2. 使用根
  3. 不使用任何人

我通常以“root”身份进行所有开发,但这是最佳实践吗?

【问题讨论】:

  • 不,使用 root 是最糟糕的做法 :-/ 。使用您的 ID,或为操作员帐户创建 ID,这些帐户将:运行软件、访问文件等。服务器(sql、web 等)应在自己的“命名”帐户下运行。 webspheresybase 等。祝你好运。
  • 投票结束基于主要意见的投票,但如果有人有“不,这是一种糟糕的做法”以外的意见,我会感到惊讶。但是每个人都有权发表自己的意见(无论多么愚蠢;-)
  • 我不认为这是基于意见的。这些选项完全不同,可以为开发人员提供不同的限制/功能。
  • 使用您自己的个人帐户。使用root,最好通过sudo 当且仅当您确实需要。 (除非你绝对不会犯错误;那么请随意使用root 处理所有内容。)
  • @mahdix - 你反对“基于意见”的论点正是它是基于意见的论点并且没有一个答案,它是基于上下文等。cmets 开始描绘你一张非常清晰的照片……

标签: linux root development-environment sudo


【解决方案1】:

在 Linux 中不将 root 用于一般用途的原因有很多。 除此之外:如果您离部署不远,在 开发 环境中使用 root 会让人头疼。在我看来(和实践)开发应该尽可能地模仿生产。以超级用户权限进行开发通常与软件的运行方式(作为 Web 用户、特权用户等)非常不同。

这将隐藏事情并导致问题进一步发生。

举个例子:在您的代码中,您在 /opt 中读/写了一个临时文件。这在开发中效果很好,测试通过,一切都很好。代码投入生产。 /optis 由 root:root 拥有,生产中为 700,应用程序作为 apache 运行。读/写会失败。

【讨论】:

    【解决方案2】:

    一个明确的答案是,您永远不应该向开发人员授予 root 访问权限。

    最好让 DEV 环境尽可能接近 PROD 环境。开发人员经常需要进行工具安装、服务配置、文件创建和文件修改。可以通过使用 Chef、Jenkins 等工具自动化流程并创建不同的访问权限(如“devops”、“commit”、“devadmins”)来很好地管理这些流程。只要需要,“devadmins”可以拥有 sudo 访问权限。这样,流程就会被组织起来并且任何人都无法进行未经授权的更改。

    想象一下,如果您的开发团队分散在不同的地理区域,在不同的时区工作。有人在印度对服务器进行了未经授权的更改,北美的开发人员会怀疑是否没有正确沟通。

    只有在没有其他选项时才应该使用root

    【讨论】:

    • 你的答案假设有某种发展。
    猜你喜欢
    • 2013-03-30
    • 2011-01-28
    • 2015-02-18
    • 2016-03-20
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    • 2017-04-28
    • 2020-05-09
    相关资源
    最近更新 更多