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


35

在公司环境中,开发人员应在其计算机上拥有管理员权限吗?为什么?

技术环境:

  • Windows 7的
  • Visual Studio 2008和2010
  • SQL服务器




3
我之所以选择重新开放此主题,是因为尽管该问题具有某种主观性,但这几乎是每位Windows管理员(我无法在其他平台上发表评论)在他/她的职业生涯中都会遇到的问题。到目前为止发布的答案提供的信息相信在遇到此问题时将对其他人有所帮助。
约翰·加迪尼尔

2
如果我可以投票重新讨论这一点,我会的。
jmort253

Answers:


52

应该吗 这取决于公司。我个人认为只要有一些可以理解的规则就可以。

  1. 在您的盒子上成为管理员不是特权,而是特权。
    1. 多次捕获病毒将被撤消
    2. 禁用公司代理将被正确撤消-AV /库存/软件部署/等
    3. 基本上,如果您做某些冒险的事情,网络将被撤销。
  2. 如果未将其安装在正式批准的列表中,则不得使您安装的任何工具成为项目的依赖项。很好地询问,不要在部署当天崩溃,并要求在没有测试的情况下将$ random_library安装在所有服务器上
  3. 对于安装在其他任何地方的普通应用程序以外的任何内容,将尽力提供支持。帮助台和/或系统管理员将不会花费5个小时来调试为什么您会遇到dll冲突。

18
好清单。还要补充一点,如果该产品最终将由没有管理员权限的用户运行,那么您需要进行相应的测试(实际的可用性测试)。太多的开发人员在他们拥有上帝权利的dev机器上进行测试的时候,做了穷人测试。该产品运行良好,他们给它盖了印章,只是要知道它在非私有环境中会窒息。
肖恩·安德森

4
@Shawn,有一个原因需要测试人员和开发人员。
伊恩·林格罗斯

11
这是一个典型的网络管理员回复,他不理解为什么开发人员需要管理员权限。这应该由过去曾管理或曾经是开发人员的经理级人员来决定。否则,您将使计算机免受病毒侵害,而Office不受开发人员侵害。
Muhammad Hasan Khan

11
@Hasan,这是一个典型的开发人员回复,他从来不必处理一个使DS3饱和的网络,而流量却使整个办公室瘫痪。我不是要你在这里做所有繁重的事情。
Zypher 2011年

9
在开发公司中,由于开发团队正在开发软件,您在从事业务。我曾在几家公司工作,这些公司将机器锁定到一定程度,以致无法完成工作,而且我们很难说服人们需要管理员权限才能运行开发工具。或者在互联网访问被切断的地方,我们甚至无法阅读在线文档。或者是一种防病毒产品,它扫描了每个数据库记录的插入内容,因此严重损害了性能,以至于我们的开发人员无法使软件正常运行。
马特

35

通常我会说是。如果没有管理员权限,则调试器之类的东西的需求很高,才能正常工作。开发人员通常需要安装随机软件,而通过渠道安装可能需要数天或数周的时间才能安装。在此期间,开发人员通常会停止工作,而公司只会花钱,尤其是如果开发人员是顾问。


13
+1-开发人员(通常)是非常聪明的人,并保持机器清洁
Mark Henderson

9
不要这样说 :)
mrdenny

4
@Mark,我尚未看到支持该说法的证据。
John Gardeniers'2

4
@Mark Henderson,您可能很幸运能与很多人一起工作。如果我每天阅读网站给我的印象是,并非所有开发人员都是平等的。
Zoredache

8
我相信有一句古老的克林贡语谚语:“当心程序员带着螺丝刀。”
Bart Silverstrim'2

23

发展中既有科学,也有艺术。这并不像“知道”我们所需要的那么简单。如果我们已经有了答案,那么一半的工作就没有意义了。寻找正确的方法通常是反复的,并且可能以不可预测的方式涉及多个工具。要求中介机构安装每一个(通常具有高延迟),却发现(大约一个小时)您的情况需要“超级工具附加程序”,这很愚蠢。

尽管VM是理想的选择,但也有很多开发工具无法在VM中运行(正确,甚至根本无法运行),因为它们本身就是VM-我并不是说JVM之类的东西;我的意思是完整的机器emus / vms,例如设备工具包。兼容性正在提高。

此外,大多数开发工具的占用空间非常大-比“常规”工具要大得多(使VM托管比您预期的要痛苦得多),而且通常由于过程调试器的性质而要求提高访问权限。更不用说它们可能是GUI密集型的;试图在VM GUI上全职运行非常痛苦。

这里的表现是巨大的;您认为用户在Word中每次按键后等待3秒以注册其密钥是否可以?我不是在开玩笑-VM 等上的开发工具可能会让人讨厌 对于大多数开发目的,您需要响应能力。中断复杂逻辑从大脑到键盘的流程可能使完成工作几乎变得不可能。我讨厌这样说,但是是的:开发时间很昂贵。


18

在Windows环境中,尤其是在使用Microsoft开发人员产品时,开发人员将需要在其计算机上具有管理员权限。如果您否认他们的这些权利,他们的工作能力将受到限制,甚至完全没有被阻止。


1
也许。但是,如果他们要生产供用户使用的产品,则应要求他们在非特权环境中测试其代码。
Bart Silverstrim'2

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

@BartSilverstrim并不总是跟随。仅仅因为应用程序的用户部分像普通用户一样运行并不意味着所有组件都在运行(例如,考虑服务客户端),服务器可能需要更高的特权。然后考虑安装程序...
Richard

1
@Richard,这也是正确的,但我相信Bart的观点是,测试必须在尽可能接近客户所要使用的环境中进行。
约翰·加迪尼尔

1
与系统任务无关的软件问题的正确答案几乎永远不应“以管理员身份运行”。
巴特·

9

作为开发人员,我将特权级别授予基本用户以上,但低于系统管理员。

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

我与之合作的sysadmin并同意这一点,在我们两个人之间,我们将积极执行该规则,并延迟所有未通过“依赖性检查”的应用程序部署。

但是,为了回答您的问题,是的,应该为开发人员提供对他们自己的计算机的完全访问权限,但是应该将这些计算机与最终将应用程序部署到的环境隔离。在这种情况下,甚至应将应用程序部署都沙盒化,直到在生产环境中认为可以安全部署为止。


9

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

在我看来,这个问题(和答案)似乎是在通过错误的方法来解决问题-也就是说,争论的焦点是管理员想要/需要的东西与开发人员想要/需要的东西。但是您指定我们在公司环境中,所以让我们来看看。

因此,让我们想象一下,我们是在IT部门或运营总监,还是控制预算的人面前争论这个问题,并提出这些问题。

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

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

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

作为顾问,我已经看到了该策略的两个极端,虽然一直想拥有对计算机的管理员访问权限,但在某些情况下这没有任何意义。我不确定是什么原因,什么是结果,但是毫无例外,我见过的所有进行Windows开发的地方都有开发人员可以访问管理员的地方,每个开发人员所获得的生产力也比他们被锁定的地方要高得多。


+1是因为您将其放在正确的角度。排除开发人员和管理员的个人喜好,并专注于对整个组织重要的事情。
Jaap Coomans 2014年

4

我认为您在问错问题,应该问:

一个好的开发人员会为没有在PC上授予管理员权限的雇主工作吗?

某个人的“需求”和他们的期望通常不是一回事,毕竟,您不需要让开发人员在工作时间内喝咖啡,但是如果您不…

(请确保在面试阶段明确您的政策,否则您可能会因为缺乏管理员权限而导致人们接任该工作,然后鄙视您的公司–不要指望程序员以合理的方式考虑这种事情! )


我承认我和团队中的每个人都在高等教育领域工作,并且是“系统管理员/程序员”,所以我想我的经验并不完全相关。但是我无法想象在一家商店担任开发人员不会完全控制我的工作站(选择操作系统和安装,选择软件等),更不用说在其上拥有root privs了。
詹森·安特曼

4

实际上,这实际上取决于您问谁,然后再问谁真正需要它。如果您问企业IT和风险管理团队,他们会到处都是恐怖的故事(如果他们要给您,他们会要求牺牲山羊以神圣的保证,即他们将不承担责任),开发人员另一方面,要求管理员权限的原因主要是工作压力很大且要求很高,而无需寻求服务台的许可即可泄漏。可悲的是,现在更多的是关于权力斗争和施加权力,然后是关于业务和生产力的需求(例如,归结为谁将使其他人陷入困境)。

恕我直言,我今天看到的最好的工作环境是两组保持分开的地方。开发人员在林中拥有自己的域(IT负责控制该域及其用户在公司其他部门中的工作),他们都是本地管理员,经验丰富的人员由MCSE担任本地域管理员,他们拥有自己的测试环境只需一项IT策略(无需盗版软件),就可以在本地LAN上完成几乎所需的一切。企业IT部门不负责任,也不对开发人员提供支持,仅执行一些高级企业规则(不允许通过防火墙访问Facebook,色情或类似内容,开发人员不得与企业LAN发生冲突),并且它们都具有基于RSA的VPN,可以在家工作将它们直接放在局域网中。整洁,不是吗?


2

答案可能是主观的,并针对每种情况,但在大多数情况下,我会说是的。


2

我要说,行政权利对发展过程很重要。鉴于使用VM沙箱相对容易,因此没有理由不能将它们放入VM并保持安全性。

发生任何错误,您可以在几分钟内擦除和重建。


2
有一个很好的理由不将它们锁定在VM中-性能。在主要应用程序上工作的开发人员可以轻松地使用带有大量RAM,快速HDD等的高规格计算机。将它们放到VM上与将它们从几年前退还给他们的计算机差不多。伟大的安全性,但不是那么好的生产力。
约翰·加迪尼尔

1
但是,这迫使开发人员在项目中写入受官方支持的机器的低端代码。此外,借助虚拟服务器,我们能够对实时产品进行容错(在某些情况下是主负载)支持。一时间什么机/集群的虚拟机中运行的问题。
DivinusVox

4
这不是为了满足最低要求而写的,而是关于使用要求性能比VM更高性能的工具的。与在裸机上相比,在VM内使用Visual Studio 2010的响应速度明显慢。您正在编写的产品可能可以在VM中正常运行,但这并不意味着开发人员的工具总是可以运行。
Michael Shimmins

2

绝对!通常,正在进行的许多开发可能会或可能不会在虚拟环境中进行。管理员权限有助于克服许多本地服务处理,注册表项和IIS的替代问题。另一方面,这取决于您对开发人员的信任程度

作为开发人员,当某些事情因为我们无权访问而无法正常工作时,这令人沮丧。


2

要看。作为开发人员,应该始终以最小特权的原则进行操作。例如,如果您以政府承包商的身份工作,则可能有合同规定您没有管理员权限。

作为Java开发人员,我几乎不需要持续对我的计算机拥有管理员权限。但是,在某些情况下,当您需要按需管理员访问权限时(即,您需要在物理上独立的域之间移动笔记本电脑,并且需要相应地更改NIC。)那是我真正需要的唯一时间对我的计算机的永久,持续的管理员访问权限。

有时您需要管理员访问权限,因为IT人手不足(或者不称职或陷入繁文tape节。)但是,如果您与有能力的IT部门合作,他们甚至可以为您远程安装这些东西(或通过提供可“运行为”,只需单击即可管理并为您安装内容。)

所以答案(再次)是-它取决于。您是否有响应迅速的IT员工可以按需(或在合理时间内)安装东西?开发人员实际上是否需要它来完成付费任务

如果开发人员真正合法地需要它(例如“如果没有它,我将无法做任何事情”),而不是方便(例如“我想安装我想要的任何东西”),以及是否有IT支持响应不充分(无论出于何种原因),那么是的,他们应该对其计算机具有管理员访问权限。

否则,不会。记住最小特权原则,人。


2

有开发人员,也有开发人员。如果“开发人员”是每小时40美元的JBoss Java家伙为规则引擎编写规则,那么当然不是。如果“开发人员”是时薪350美元的C / Assembly家伙,则可以让您的视频编辑软件在GPU上尽可能快地运行,那么可以。


1

对于担心安全性的公司,他们将让安全人员下达命令并尝试执行与他们的开发和系统模型相适应的策略。在Windows环境中,大多数人会告诉您,您必须在要开发的主机上具有管理权限才能执行任务。

这不一定是真的...

您可以创建自定义策略,并使所有程序和功能与系统上的开发用户一起使用。您只需要进入工作区,然后进入肮脏的环境,就可以根据需要的设计,对具有组或自定义组的程序/系统目录具有自定义权限。

大多数公司都会说,开发人员在开放网络上安装系统非常危险,因为黑客可以获得控制权并开始编译自己的工具,因此按照我的专业观点,完成任务非常值得冒险。


尽管您所说的在技术上是正确的,但这也是实施,维护和创建脆弱环境的噩梦。
约翰·加迪尼尔

我宁愿完全访问开发网络,然后仅在存在实际问题时才使用VPN通过Internet连接到公司网络。我也看到过很多公司IT部门为我提供的东西少于一个好的ISP所能提供的!有没有必要作为一个开发者是相同的未经过滤的网络账号等部门
伊恩林格罗塞

1

开发人员应该(理想情况下)具有两个域登录名。

一种具有本地管理员权限(用于开发工作),另一种具有与公司中其他所有人相同的权限。然后,他们可以在一组具有代表性的权限上测试其工作。

这样可以减少偶尔出现ItWorksOnMyMachine-itis的可能性。


0

我必须(显然)提供反对声音,并说“不”,但说“不”。对于没有网络访问权限的沙盒虚拟机,我可以给开发人员管理员权限。Zypher几乎正确(校正以粗体显示):

“ 1.成为我的管理员是特权,而不是权利。” 这些系统是我最终负责的公司资产。当Joe Developer安装他的Microsoft Bob盗版副本(“因为我需要它”)时,不是他必须解释在审核之前是如何找到它的。开发人员通常会以某种方式认为公司规则不适用于他们。通过为他们提供沙盒虚拟机,他们可以遵循其他所有人都必须遵循的所有规则(因为现在只有IT人才可以在系统之间复制文件)。神奇的是,请求系统再次被开发人员使用,当Joe Developer破坏他的开发箱时,天空不再掉下来-他只是要求一个新的(如果要求备份则要还原)

Denny先生提到开发人员在必须等待安装应用程序时要花钱,A。您好...我的时间通常和Joe Developer一样宝贵(通常更多,因为我保持了现有的废话的运行,我真的吗?必须提到所有时间来帮助Joe开发人员调试他的上一部杰作),以及B.当开发人员预算过高时,因为他们在等待应用程序并试图将其归咎于IT,我会说:

您无需为编写软件所需的计划而缺乏规划,这不是我的责任,我们拥有一套标准的工具,如果该工具箱缺少您需要的工具,那么您应该要求加快开发更多工具的请求,而不是试图让我跳槽赶紧为您买单,因为您的截止日期是明天。

这么说了之后,如果您可以淘汰那些认为自己有权观看其Baywatch系列产品的developers脚的开发人员,并且生气地得知他们无法安装babewatch播放器来查看它们,那么请锁定开发人员的桌面。开源”),您也许可以放松一下。但是,对于每一个出色的开发人员来说,要想得到他们的“回报”,您的公司将为这个价值2亿美元的垂直应用程序再雇用10名,这就是您需要提防的人。

编辑:从种源上看,很可能我接触过的开发人员异常沉闷(仅对1种听说过stackoverflow的现有作物进行轮询,以提供一定水平的基准测试)。首先,我的出发点是“您需要做什么以公司为您支付的费用”。如果您需要管理员权限,则可以使用它们,但是您不应该随便使用它们,并且如果我能为您提供一个盒子,坦率地说,我不在乎您对它做什么,并且可以正常工作,那么我们都很好。


14
哇,BOFH住在我们中间!您基于以下基本原则而失败了:我们的工作主要是使其他所有人都能在政策,法律要求等施加的限制内尽我们所能来做自己的工作。这不是任意地告诉他人他们如何做的一种。仅仅因为它适合我们而工作。
John Gardeniers'2

+1为最后一段。如果您只雇用了体面的开发人员,则可以删除所有其他段落。
罗伯特·哈维,

6
哇-爱我们和他们的心态。您是否认为“他的”最后期限实际上也就是“您的”最后期限,因为你们在一起(大概是为了公司的利益)。我从肥皂上不认识您,但是您让我想起了典型的系统管理员那令人讨厌,傲慢,试图找到一种说而不是不是的方式。对于每个人来说,有1位优秀的sys admin,您的公司雇用了另外10名,这使您刚刚摆出的刻板印象永存,并使公司生活中的其他每个人都变得更加困难。您应该关注服务交付,而不是约束。
Michael Shimmins,2011年

我曾专门针对大多数点的答案:serverfault.com/questions/232416/...
马克Gravell

1
也许您是“与您接触的开发人员异常呆板”的原因。公司必须决定是否需要自由思考或沉闷的开发人员,并且不能以自由思考的开发人员讨厌的方式采取行动,然后期望让其他人远离沉闷的开发人员。但是,乏味的开发人员可以胜任许多公司工作。
伊恩·林格罗斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.