dev 应该是他们计算机上的管理员吗?

PBe*_*ger 38 user-permissions

在企业环境中,开发人员是否应该在他们的计算机上拥有管理员权限?为什么?

技术环境:

  • Windows 7的
  • Visual Studio 2008 和 2010
  • 数据库服务器

Zyp*_*her 53

他们应该吗?那要看公司了。我个人认为只要有一些理解的规则就可以了。

  1. 在你的盒子上做管理员是一种特权,而不是一种权利。
    1. 多次感染病毒会被撤销
    2. 禁用公司代理将被撤销 - AV/库存/软件部署/等
    3. 基本上,如果你做一些有风险的事情,网络就会被撤销
  2. 您安装的任何工具都不能成为您项目的依赖项,除非它们在正式批准的列表中。请不要在部署当天崩溃,并要求在所有服务器上安装 $random_library 而不进行测试
  3. 对于安装在其他任何地方的正常应用程序之外的任何东西,支持将是最大的努力。帮助台和/或系统管理员不会花 5 个小时来尝试调试 dll 冲突的原因。

  • 好清单。还要补充一点,如果产品最终将由没有管理员权限的用户运行,那么您需要进行相应的测试(真正的可用性测试)。太多的开发人员在他们拥有上帝权利的开发机器上进行穷人测试。该产品运行良好,他们给了它一个认可的印章,却发现它在非隐私环境中窒息。 (18认同)
  • 这是一个典型的网络管理员回复,他不明白为什么开发人员需要管理员权限。这应该由过去管理过或曾经是开发人员的经理级别人员决定。否则,您将使机器没有病​​毒,办公室没有开发人员。 (12认同)
  • @Hasan,这是一个典型的开发人员回复,他从未处理过受感染的网络使 DS3 饱和,流量导致整个办公室瘫痪。我不是要你在这里做任何繁重的事情。 (11认同)
  • 在开发公司中,您从事业务是因为开发团队正在大量生产软件。我曾在几家企业工作过,其中机器被锁定到无法完成工作的程度,我们很难说服人们我们需要管理员权限来运行开发工具。或者互联网访问被切断,以至于我们甚至无法阅读在线文档。或者是一种反病毒产品,它会扫描每个数据库记录插入,因此会严重损害性能,以至于我们开发人员不可能使软件正常运行。 (10认同)
  • @Shawn,您需要测试人员和开发人员是有原因的。 (4认同)
  • 许多调试器需要管理员权限。 (3认同)
  • @Stephen 我指的是“在你的盒子上做管理员是一种特权而不是权利”的声明。我说这是发展的“要求”。 (2认同)
  • 如果您打算信任开发人员来构建可以对服务器上的数据做任何想做的事情的软件,例如使用后门将其发送到其他地方,我认为您可以信任所说的开发人员 ** 在他/她自己隔离的情况下开发箱**。如果您担心病毒,请将开发人员放在他们自己的网络上。问题解决了。 (2认同)

mrd*_*nny 36

通常我会说是的。如果不是管理员权限,调试器之类的东西需要非常高才能正常工作。开发人员通常需要安装随机软件,在通过渠道时可能需要数天或数周才能安装。在那段时间里,开发人员通常停止工作,除了钱之外别无他法,特别是如果开发人员是顾问的话。

  • +1 - 开发人员(通常)是相当聪明的人,并保持他们的机器清洁 (15认同)
  • 不要这样说。:) (9认同)
  • 我相信有一句古老的克林贡谚语是这样说的:“提防程序员拿着螺丝刀。” (8认同)
  • @Mark,我还没有看到支持这一说法的证据。 (4认同)
  • @Mark Henderson,您可能很幸运能够与一群优秀的人一起工作。如果[我每天阅读的网站](http://thedailywtf.com/) 给我的印象是并非所有开发人员都是平等的。 (4认同)

Mar*_*ell 25

科学和艺术都在发展;这并不像“知道”我们需要什么那么简单。如果我们已经有了答案,那么我们的工作就没有意义了;找到正确的方法通常是迭代的,并且可能以不可预测的方式涉及多种工具。需要中介来安装其中的每一个(通常具有高延迟),只是发现(大约一个小时后)对于您的场景需要“超级超级工具插件”是愚蠢的。

虽然 VM 非常适合于此,但也有许多开发工具无法在 VM 中运行(正确,甚至根本无法运行),因为它们本身就是一个 VM——我指的不是 JVM 之类的东西;我的意思是全机 emus/vms,例如设备工具包。那里的兼容性正在提高。

此外,大多数开发工具的占用空间非常大——比“常规”工具大得多(使 VM 托管比您预期的要痛苦一些),并且通常作为进程调试器的性质需要提升访问权限。更不用说它们可能是 GUI 密集型的;尝试在 VM GUI 上全职运行是......非常痛苦。

性能是一个巨大的存在;您认为用户在 Word 中每次按键后等待 3 秒来注册他们的密钥是否可以?我不是在开玩笑 - 虚拟机等上的开发工具可能很糟糕;对于大多数开发目的,您需要响应能力。中断从大脑到键盘的复杂逻辑流几乎不可能完成工作。我不想这么说,但是是的:开发时间很昂贵。


Joh*_*ers 19

在 Windows 环境中,尤其是在使用 Microsoft 开发人员产品时,开发人员将需要其机器的管理员权限。如果您否认他们的这些权利,他们完成工作的能力将受到限制,如果不能完全阻止的话。

  • @Bart,我完全同意,但开发人员无论如何都应该在单独的机器上进行测试,因为开发工具创建的环境与“普通”计算机的环境完全不同。 (2认同)

小智 9

作为一名开发人员,我将我们列为高于基本用户但低于系统管理员的特权级别。

有时,我可能需要安装一个额外的库来让我正在开发的应用程序在生产环境中工作,也就是说,我制定了一个严格的规则:“对于任何需要第三方库的应用程序,库应该在生产部署之前安装在沙箱环境中,在某些情况下,在应用程序开发之前。”

与我一起工作的系统管理员并同意这一点,在我们两人之间,我们将积极执行该规则并延迟任何未通过“依赖性检查”的应用程序部署。

不过,要回答您的问题,是的,开发人员应该拥有对他们自己机器的完全访问权限,但这些机器应该与应用程序最终部署的环境隔离。在这种情况下,即使应用程序部署也应该被沙箱化,直到被认为可以安全地部署在生产环境中。


小智 9

免责声明:我是一名开发人员。

对我来说,这个问题(和答案)似乎是从错误的方法来解决问题的——也就是说,争论的重点是管理员想要/需要什么,以及开发人员想要/需要什么。但是您指定我们处于公司环境中,所以让我们以这种方式看待它。

因此,让我们假设我们在 IT 或运营总监或控制我们预算的任何人面前争论这个问题,并提出这些问题。

  1. 执行部门职能所需的最低权限是多少?这是我们的基线。
  2. 授予他们更多访问权限的风险是什么?(实际风险,不仅仅是最好/最坏的情况)
  3. 授予他们更多访问权限的真实预期成本是多少?(支持成本、修复缺乏经验的管理员无意中所做的更改等)
  4. 授予他们更多访问权限的真正预期成本是多少?(生产力下降、需要 IT 支持来执行日常任务、由于士气低落等原因导致有经验的人员流失等)

回答这些问题后,您就可以做出明智的决定,而不是做出充满激情的决定。

对于您的特定环境,有些事情需要管理员权限(请参阅用户权限和 Visual Studio)——如果他们不做这些事情,那么您可以回答问题 2 - 4。

作为一名顾问,我见过这种政策的两个极端,虽然总是希望拥有对机器的管理员访问权限,但在某些情况下它没有意义。而且我不确定什么是原因,什么是结果,但无一例外,我所看到的 Windows 开发的每个地方,开发人员具有管理员访问权限的地方,每个开发人员的生产力都比他们被锁定的地方高得多。