在Linux环境中进行软件开发时有三种选择:
我通常将我的所有开发都视为“root”,但这是最佳做法吗?
答案 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