Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 始终使用'是一种良好的做法吗;根';开发环境中的用户?_Linux_Root_Development Environment_Sudo - Fatal编程技术网

Linux 始终使用'是一种良好的做法吗;根';开发环境中的用户?

Linux 始终使用'是一种良好的做法吗;根';开发环境中的用户?,linux,root,development-environment,sudo,Linux,Root,Development Environment,Sudo,在Linux环境中进行软件开发时,有三种选择: 使用您自己的用户(例如mahdi) 使用根 无人使用 我通常以“root”的身份进行所有开发,但这是一种最佳实践吗?在Linux中,有很多理由不使用root作为通用工具。 除此之外:如果离部署不远,在开发环境中使用root将引起麻烦。在我看来(和实践中),开发应该尽可能地模仿生产。使用超级用户权限进行开发通常与软件的运行方式(作为web用户、特权用户等)非常不同 这将隐藏一些东西,并导致问题进一步恶化 举个例子:在代码中,您在/opt中读/写一个临

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

  • 使用您自己的用户(例如mahdi)
  • 使用根
  • 无人使用

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

    在Linux中,有很多理由不使用root作为通用工具。 除此之外:如果离部署不远,在开发环境中使用root将引起麻烦。在我看来(和实践中),开发应该尽可能地模仿生产。使用超级用户权限进行开发通常与软件的运行方式(作为web用户、特权用户等)非常不同

    这将隐藏一些东西,并导致问题进一步恶化


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

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

    这将隐藏一些东西,并导致问题进一步恶化

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

    一个线性回答是,您永远不应该将root访问权授予开发人员

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

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

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

    一个线性回答是,您永远不应该将root访问权授予开发人员

    让开发环境尽可能靠近产品环境是一种很好的做法。开发人员通常需要执行工具安装、服务配置、文件创建和文件修改。通过使用诸如Chef、Jenkins之类的工具自动化过程,以及创建诸如“devops”之类的不同访问,可以很好地管理这些过程提交“,”devadmins“。只要需要,“devadmins”就可以访问sudo。通过这种方式,流程将得到组织,任何人都不能进行未经授权的更改

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

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


    不,使用
    root
    是最糟糕的做法:-/。使用您的ID,或为操作员帐户创建ID,这些帐户将:运行软件、访问文件等。服务器(sql、web等)应在自己的“命名”帐户下运行
    websphere
    sybase
    ,等等。祝你好运。投票关闭一个主要基于意见的网站,但如果有人的意见不是“不,这是一个糟糕的做法”,我会感到惊讶。但是每个人都有权发表自己的观点(不管多么愚蠢;-)我不认为这是基于观点的。这些选项完全不同,可以为开发人员提供不同的限制/功能。请使用您自己的个人帐户。使用
    root
    ,最好在实际需要时通过
    sudo
    使用。(除非你绝对不会说错话;然后可以随意使用
    root
    来处理所有事情。)@mahdix-你反对“基于观点”的论点正是基于观点,没有一个答案,它是基于上下文等。这些评论开始给你描绘出一幅非常清晰的画面……不,使用
    root
    是最糟糕的做法:-/。使用您的ID,或为操作员帐户创建ID,这些帐户将:运行软件、访问文件等。服务器(sql、web等)应在自己的“命名”帐户下运行
    websphere
    sybase
    ,等等。祝你好运。投票关闭一个主要基于意见的网站,但如果有人的意见不是“不,这是一个糟糕的做法”,我会感到惊讶。但是每个人都有权发表自己的观点(不管多么愚蠢;-)我不认为这是基于观点的。这些选项完全不同,可以为开发人员提供不同的限制/功能。请使用您自己的个人帐户。使用
    root
    ,最好在实际需要时通过
    sudo
    使用。(除非你绝对不会说错话;然后可以随意使用
    root
    来处理所有事情。)@mahdix-你反对“基于观点”的论点正是基于观点,没有一个答案的论点,这是基于上下文等。这些评论已经开始给你描绘出一幅非常清晰的画面……你的回答假设了某种程度的错误