在开发环境中始终使用“root”用户是一种好习惯吗?

时间:2015-11-11 02:05:41

标签: linux root development-environment sudo

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

  1. 使用您自己的用户(例如mahdi)
  2. 使用root
  3. 使用无人
  4. 我通常将我的所有开发都视为“root”,但这是最佳做法吗?

2 个答案:

答案 0 :(得分:5)

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

这将隐藏事物并导致问题进一步发展。

举一个例子:在你的代码中,你在/ opt中读/写一个临时文件。这在dev中很有效,测试通过,一切都很棒。代码进入生产阶段。 / opt由root拥有:root用700生产,应用程序作为apache运行。读/写将失败。

答案 1 :(得分:2)

  

一个答案是你永远不应该授予开发者root权限。

将DEV环境尽可能地靠近PROD环境是一种很好的做法。开发人员通常需要执行工具安装,服务配置,文件创建和文件修改。通过使用Chef,Jenkins等工具自动化流程,并创建不同的访问权限,例如“devops”,“commit”,“devadmins”,可以很好地管理这些流程。无论何时需要“devadmins”都可以使用sudo访问权限。这样就可以组织流程并且没有人能够进行未经授权的更改。

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

  只有在没有其他选项的情况下才能使用

root