开发人员是否应具有pipe理员权限?
开发人员是否应该在个人电脑上拥有pipe理员权限,或者是否给予用户足够的权限
一些评论:
- 如果他们想尝试一些需要安装的新应用程序,那么他们可以在虚拟机上尝试,然后让networkingpipe理员为他们安装。 你认为这会起作用吗?
- 开发人员需要在PC上执行哪些操作需要pipe理员权限?
我们是由5名开发人员组成的团队,并构buildWeb应用
答案是'是'。 开发人员需要使用系统configuration来testing项目,安装软件(如果没有别的,testing正在开发的任何安装过程),捅registry并运行没有pipe理员权限就无法正常工作的软件(只是列出几个项目)。 开发工作中还有许多其他任务需要pipe理权限来完成。
考虑到开发人员不一定有权访问生产系统,本地PC上的pipe理员权限不会严重影响生产系统的安全性。 几乎没有任何合法的操作理由限制pipe理员访问本地电脑的工作人员需要它的工作。
但是,提供pipe理访问的最重要原因是设置受损或二级开发环境会向开发人员发送消息:
“我们很重视你们的工作,所以我们准备大大地损害你们无能为力的工作能力。 事实上,我们很乐意这样做来掩饰我们自己的屁股,迎合小规模的官僚主义,或者因为我们根本不会被打扰。 这是最好的情况。 最糟糕的情况是,我们真的是那种控制怪胎,认为它是我们的目标,告诉你如何做你的工作,你做什么或不做什么。 做好你所得到的事情,并感激你有一份工作。
一般来说,为发展人员提供一个二stream的工作环境(更不用说从根本上说是有缺陷的),是一个惹恼员工的自然后果 – 无法留住人才,人员stream动率高,士气低落,交付质量差等。 走出自己的路,特别是如果有一个泛泛的官僚主义的想法 – 是不负责任的。
请记住,您的员工stream失不仅会导致员工更换成本。 员工stream失的最严重的代价是大部分的员工stream失将成为无法find更好的工作的枯燥的工作。 随着时间的推移,这会降低受影响部门的能力。 如果你的行业足够接近,你也可以find自己的声誉。
需要注意的一点是,对于unix-oid或大型机系统来说,pipe理权限远不是Windows上的问题。 在这些平台上,用户可以在自己的域中做更多的事情,而不需要系统范围的权限。 您可能仍然需要开发者的root或者sudo访问权限,但是不会让这个问题频繁发生。 这种灵活性是计算机科学学院unix派生操作系统持续普及的一个重要但鲜为人知的原因。
开发人员应该对他们正在使用的机器进行全面的控制。 大多数debugging工具都需要pipe理员权限才能挂入正在构build的应用程序的运行时。
此外,开发人员经常下载并尝试新的东西。 添加额外的步骤,如需要一个networkingpipe理员来为他们安装一些东西,只是挫败开发,并将迅速使networking操作人员的生活。
也就是说,他们应该是他们的pipe理员,而不是networking。
是和不是。
是的,它节省了大量的时间来困扰系统支持。
不,你的用户没有它,所以不要指望它。
我们开发与pipe理权限和testing没有。 哪个工作正确。
本地pipe理员是,出于上述所有原因。 networkingpipe理员没有,因为他们将不可避免地被卷入networkingpipe理任务,因为“他们可以”。 开发者应该发展。 networkingpipe理是一个完全不同的工作。
开发人员通常需要做普通人不会做的事情,所以通常应该有pipe理员帐户。 让他们跳过尴尬的铁环浪费他们的时间,并使他们士气低落。 在高度安全的情况下可能会有例外,但是如果您不能相信某个pipe理员帐号的人,那么您肯定不能相信他们的代码。
他们还应该拥有与其用户相同权限的可用帐户(如果用户池具有不同的权限状态,则有多个帐户)。 否则,他们可能只是开发一些很酷的东西,部署它,然后发现它不会为用户工作。
也有太多的方式搞砸与pipe理员帐户的电脑(是的,我已经做到了)。 IT部门需要一个政策,即如果无法快速修复,他们会重新映像开发人员的计算机。 在我签约的一个地方,我必须签署该政策的副本才能取得我的pipe理员帐户。
这是一个非常特定于Windows的答案。 在Linux和其他Unix-y系统中,开发人员可以更频繁地使用用户帐户,通常不需要另一个帐户进行testing(如果他们有一个帐户,他们可以sudo,他们知道他们什么时候使用sudo,但他们可能需要具有相同的组权限),并且可以非常容易地对操作系统造成巨大的损害,所以同样的IT策略是必需的。
是的,半条命1(和所有相关的mods:反击,失败的一天等)需要pipe理员权限(至less第一次运行,我认为)在Windows NT,2000,XP等中正常工作。
而且,什么样的开发者在午餐时间不玩Counter Strike? (肯定是一个蹩脚的人)
绝对! 如何安装下载pipe理器在晚上下载电影?
有时开发人员确实需要在系统中安装或改变某些东西来testing一些想法。 如果您每次需要更改某些内容时都必须致电pipe理员,那将是不可能的。
我也有我的个人观察,有些pipe理员倾向于把所有可能的东西都拧紧,以便使他们每天都能依靠他们,从而保证他们的工作。 扯掉其他用户? 没有答案。 但常识在这里没有看到。
上次我的电脑出了问题,我积极地恢复了系统,提出了一些与pipe理员一起工作的build议,所以我想……pipe理员变得非常生气,指责我试图教他或重新定义规则。 我想这只是他的自我,因为在我们的房间里,和其他同事没有见过这样的冷静。
答案是,开发者应该有2台机器!
-
一个具有pipe理权限和足够的权力,内存,屏幕大小,可移植性和ADMIN权限的开发,加载了企业防病毒软件,但在需要时使用自动设置策略进行configuration。
-
一个公司有企业负载,政策,非pipe理员用户权限等…开发人员可以使用这一个unit testing发布模式的应用程序,因为一些开发人员有一个令人讨厌的习惯做所有的unit testing与pipe理员权限。
是的,但是他们需要知道用户在更有限的环境中运行软件时将面临的限制。 开发人员应该可以轻松访问资源和权限有限的“典型”环境。 在过去,我已经将构build部署到这些“典型”系统(通常是我自己的工作站上的虚拟机)中,作为构build过程的一部分,这样我就可以快速地感受到软件如何在terminal上运行,用户的机器。
程序员也有责任了解为非pipe理员用户编写软件的硬性规定。 他们应该确切地知道他们总是被允许(或被禁止)访问的系统资源。 他们应该知道用于获取这些资源的API。
“它在我的机器上运行”绝不是一个借口!
作为一个系统pipe理员,我都是在开发者的工作站上拥有本地pipe理权限的。 如果可能的话,用标准的“用户”级帐户做大部分事情,然后使用另一个“pipe理员”帐户进行更改,安装应用程序等等,这并不是一个坏主意。通常你可以使用sudo或runas来完成你想要的东西,甚至不需要logging出。 这也有助于提醒我们,最终用户在发布到生产时将不得不跳过哪些安全问题。
在一个侧面说明,build议有一个[清洁]系统或虚拟机,以便您可以正确地testing,并且不会因为系统调整而进入“在我的系统上看起来/正常工作”的情况。
经历了在机器上没有pipe理员权限而发展的痛苦,我的答案只能是肯定的,这是至关重要的。
如果你反转这个问题,我认为它变得更容易回答; 我们应该删除开发人员的pipe理员权限 什么是收益?
但实际上,我认为答案取决于你的环境,你的环境。 小型创业公司将对ISOauthentication的政府机构有不同的答案。
我主要在* nix世界工作,开发人员使用标准模型,以正常的非特权用户帐户(通过sudo
或su
)升级到必要时的pipe理权限。
我不确定相同的Windows安排是什么,但是根据我的经验,这是理想的设置:
-
一方面,根据需要提供pipe理权限,可以让开发人员在需要时充分发挥工作站的作用。
-
另一方面,Windows软件长期以来一直假设所有用户都拥有pipe理权限,因此很多程序不能为非pipe理员用户运行。 Windows的许多安全问题直接来自于这个隐含的要求,为了能够可靠地使用计算机,所有用户都必须是pipe理员。 这必须改变 ,确保你的软件能够为非pipe理员用户运行的最有效的方法是让你的开发者以非pipe理员的身份自行运行它。
没有高级用户
首先,高级用户基本上是一名pipe理员,因此将用户“ 限制 ”到高级用户不会增加系统的安全性 – 您可能也是pipe理员。
以普通用户的身份交互式login
其次,开发人员当然需要对他们的开发者机器(以及服务器和第二个机器等)的pipe理权限,但是当然,在正常开发或testing期间,没有人应该以pipe理员的身份进行交互式login。 为这个和大多数应用程序使用一个正常的用户帐户
你真的不想以pipe理员身份运行[插入任何浏览器,插件,IM,电子邮件客户端等]。
您通常不会以root身份login您的Linux机器,即使您在需要时可能拥有root权限。
使用单独的个人pipe理员帐户
向开发人员提供一个单独的个人pipe理员帐户给他/她的机器(最好是域帐户),该帐户也是其他开发/testing服务器上的有效pipe理员,以及该用户需要pipe理员访问的框。
使用“运行方式”并在Vista + UAC中提示或请求提示,并仅在需要时input任务和进程的pipe理凭据。 使用智能卡或类似的PKI可以大大减less经常input证书的压力。
大家都很开心(或?)
然后审计访问。 这样就有了可追溯性,并且可以很容易地找出谁正在使用terminal服务会话,您现在必须访问特定的开发/testing服务器。
当然,绝对不需要本地pipe理员权限的开发工作 – 就像大多数Web开发一样,部署是针对单独的服务器或虚拟机进行testing的,并且cassini或其他用于本地debugging的实际上可以像普通用户一样正常运行。
[道歉英语不是我的母语,尽我所能:)]
个人经验(我是一个c + + / SQL开发):
我曾经是我以前工作的Windows机器的pipe理员。 我还对数据库(包括生产环境数据库)拥有dbo(而不是dba)权利。 在2年半的时间里,有8个人拥有这些疯狂的高权利……我们从来没有遇到任何麻烦。 其实我们手动更新数据库解决了很多问题。 对于hotfixes和devs,我们可以做很多事情。
现在我改变了工作。 我pipe理(哭了很多)是我的Windows机器的pipe理员。 但是dev服务器是我们用ssh连接的红帽服务器。 试图安装Qt是一种折磨,配额限制,空间限制,执行和写权。 我们终于放弃了,并要求pipe理员为我们做。 2周后还没有安装任何东西。 我在报纸阅读和alt + tab打击方面真的很快。
我要求pipe理员权限,因为只有我的软使用这台机器的开发。
– >回答:“如果有进程,你不要做任何你想做的事情,它必须在产品中运行良好”。
– 试图向非技术经理解释:“在生产或UAT环境下,我将没有任何pipe理权限,但是我的开发机器是不同的,如果我要build立椅子而不是软件,你会告诉我,我可以因为我的工作室需要看起来像椅子的使用位置,所以我没有在我的工作室中放置任何工具,我给了一个可执行的软件包,用于构build它们的库和工具对最终用户是不可见的,伙计安装包裹“。
我今天还在等。 我find了一个解决scheme,打开开发环境,去你最喜欢的网上评判,挑战自己。 当有人看着你的屏幕,他会对你进行编程。 ;)
你可以用两种方法来回答这个问题。 是和不,或者取决于。 – 我可以更模糊…
这取决于是否需要他们去做他们的工作。 如果是这样,那么授予他们对计算机的pipe理权力。 如果没有,那就不要。 并非所有的软件开发都需要工程师拥有pipe理权限。
是和否取决于你的看法。 一些工程师将他们的计算机视为他们的领域,他们是他们的领域的规则。 其他人不想要这个责任。
我曾经在一家没有pipe理员权限的公司工作过,每当我需要做某些需要pipe理员权限的事情时,我不得不打电话给服务台,他们给了我临时pipe理员权限,直到我重新启动。 这有时候是一种痛苦,但那是我和它一起生活的方式。 我也曾在有完全pipe理权限的地方工作。 这是伟大的,除了我安装了一些软件,泄漏的操作系统,不得不把我的电脑到服务台,让他们重新映像的硬盘驱动器….
我个人觉得,一个工程师应该对他们的计算机拥有pipe理员权限,但是要知道,如果他们搞砸了,那么新的基准映像可以重新加载,并且他们将失去自原始基线以来完成的任何事情。 我不相信公司里的每个人都应该拥有pipe理员权限。 会计,行政助理等部门实际上并不需要拥有这些权利,所以不应该被授予。
ht tp://msdn.microsoft.com/en-us/library/aa302367.aspx
根据我的经验,总是需要我们(编码员)和他们(安全)之间的妥协。 我承认(虽然我讨厌),上面的微软文章中有优点。 由于我多年来一直是程序员,所以经历了我需要安装一个不同的debugging器的痛苦,只是为了让我恼火,我不能。 它迫使我创造性地思考如何完成我的工作。 经过多年与我们的安全团队的斗争(和几次讨论),我明白他们的工作必须保证所有领域,包括我的桌面。 他们向我展示了即使是最简单的Quicktime应用程序也会出现的每日漏洞。 每次我想安装一个快速工具或调整我的本地IIS时,我都可以看到他们的恶意,我可以导致严重的安全问题。 直到我看到另一个开发人员被装jar,我才完全明白这一点。 他试图进行debugging,并最终closures了赛门铁克,只是为了让数百人得到(然后放弃)一些病毒。 这是一个烂摊子。 在与“secheads”(安全人员)之一谈论发生的事情时,我可以看到他只是想说,“告诉过你…”。
我知道我们的secheads(至less是我的)只是想保护我们的公司。 好消息是我们确实find了一个妥协scheme,而且我可以完成我的工作,并且我们的安全networking上的secheads很酷!
信条
哇,这个问题肯定会打开一些有趣的答案。 在答复我引用的经常使用 – “它取决于”:)
在小公司,这可能只是一个务实的问题。 开发者也可能是技术最好的,所以他们pipe理他们自己的机器是有道理的。
就我个人而言,我是“pipe理员帐户”的粉丝,可以在必要时使用这个帐户,例如“Run As ..”(我注意到这个方法和UAC稍后在本质上非常相似)。
如果您正在开发桌面软件,开发人员在最终用户将经历的范围内工作并不是一个坏主意 – 即有限或受限的权利。 如果您使用有限的权限构build软件,那么在给定相同权限的情况下,您很可能会遇到同样的问题,您的目标用户将面临同样的问题。
话虽如此,如果你有一个良好的testing实验室和/或一个体面的QA团队,这可能是一个有争议的问题 – 特别是如果你有一半体面的ALM练习。
所以最后 – 我没有UAC开发,主要是因为我相信自己和我的技能。 在一个团队的环境中,我会投票。 在较大的组织中,你可能没有这个自由..企业pipe理员经常有最后的话:)
Windows XP上没有人应该使用pipe理员帐户进行日常使用,而在Vista中,如果您必须是pipe理员,则至less应启用UAC。 特别是使用Internet Explorer浏览网页的Web开发人员和其他开发人员。
你可以做的是开发人员使用他们的普通用户帐户,但给他们的第二个帐户是在他们的个人电脑上的pipe理员,以便他们可以根据需要使用它(运行方式)。 我知道他们说web开发,但是对于Windows开发,你的软件应该使用一个普通的用户帐户进行testing,而不是作为pipe理员。
在我的公司,开发人员,工程师和我的老板(公司所有者)拥有本地pipe理员权限。 我的老板也有networkingpipe理员的权限,以防万一我被这个任性的公共汽车(或者退出)所击中。 其他人被locking。
作为系统pipe理员,这个设置有时会让我有点不安,尤其是当未经批准的软件被安装的时候。 然而,从开发者的背景来看,我理解高级用户需要更多的控制他们的环境,因此,我们愿意忍受偶尔会出现的一些怪癖或问题。 为了以防万一,我确实在他们的工作站上进行例行备份。
顺便说一下,老板和其他人比起来,我遇到了更多的问题。 有点像老问题,“大象坐在哪里?他想要的任何地方!” 但是在一个实质上是“备份”系统pipe理员的小公司,没有多lessselect。
这取决于开发者的技能以及他/她是否是一名顾问。
我认为一个经验丰富,值得信赖的开发人员,只要不损害他/她的生产力,就有权利对他/她的个人电脑做任何他/她想要的事情。