开发人员应该在其PC上具有管理员权限,还是应该授予他们高级用户访问权限?
一些评论:
- 如果他们想尝试一些需要安装的新应用程序,则可以在虚拟机上进行尝试,然后让网络管理员为他们安装它。你认为那行得通吗?
- 开发人员需要在PC上做任何需要管理员权限的事情吗?
我们是由5个开发人员组成的团队,并构建Web应用程序
开发人员应该在其PC上具有管理员权限,还是应该授予他们高级用户访问权限?
一些评论:
我们是由5个开发人员组成的团队,并构建Web应用程序
Answers:
答案是“是”。开发人员将需要获取系统配置,以测试项目,安装软件(如果没有其他要求,以测试他们碰巧正在开发的产品的安装过程),戳注册表并运行没有管理员权限就无法正常工作的软件(只是列出一些项目)。开发工作中还包含许多其他任务,这些任务需要管理权限才能执行。
请记住,开发人员不一定具有对生产系统的root访问权限,因此本地PC上的管理员权限不会显着损害生产系统的安全性。几乎没有合法的运营理由将需要访问权限的人员限制在本地PC上的管理员访问权限。
但是,提供管理访问权的最重要原因是,设置受到破坏的或二流的开发环境会向您的开发人员发送一条消息:
``我们对您的工作非常重视,以至于我们准备无缘无故地大幅削弱您的工作能力。实际上,我们很乐意这样做以掩盖自己的屁股,顺应小官僚的异想天开,或者因为我们根本不被打扰。那是最好的情况。最坏的情况是,我们确实是控制怪胎类型,将其视作告诉您如何做工作以及您需要做什么或不需要做的事情。尽自己所能提供的,并感激自己找到一份工作。”
通常,为开发人员提供一流的工作环境(更不用说根本上有缺陷的工作环境)是惹恼您的员工的自然后果的秘诀-无法留住胜任的人员,员工流失率高,士气低下和交付质量差。竭尽全力做到这一点-尤其是如果有过分顺应官僚主义的想法-这是不负责任的。
请记住,您的员工流动不仅会产生更换员工的成本。员工流动最严重的代价是,大多数留在员工身边的都是那些无法找到更好工作的枯木。随着时间的流逝,这会降低受影响部门的能力。如果您的行业足够亲密,您也可以找到自己的声誉。
需要注意的一点是,与Windows相比,管理特权在unix-oid或大型机系统上的开发所要解决的问题要少得多。在这些平台上,用户可以在自己的域中做更多的事情,而无需系统范围的权限。您可能仍会希望开发人员具有root或sudo访问权限,但如果不这样做,那么访问权限的频率就会降低。这种灵活性是计算机科学学校中Unix操作系统持续流行的重要但鲜为人知的原因。
开发人员应完全控制自己使用的计算机。大多数调试工具都需要管理员权限才能挂接它们正在构建的应用程序的运行时。
此外,开发人员经常下载并尝试新事物。添加额外的步骤(例如需要网络管理员来为他们安装东西)只会使开发人员感到沮丧,并将迅速使网络运营人员陷入困境。
就是说,他们应该是THEIR管理员,而不是网络管理员。
是的,没有。
是的,它节省了麻烦的系统支持时间。
不,您的用户没有它,所以不要指望它。
我们以管理员权限进行开发,而无需进行测试。哪个正确。
开发人员通常需要做普通人不会做的事情,因此通常应该拥有管理员帐户。让他们跳过笨拙的篮球圈会浪费他们的时间并使他们士气低落。在高度安全的情况下可能会有例外,但是如果您不信任具有管理员帐户的人,则可以确定不信任他们的代码。
他们还应具有与其用户相同权限的可用帐户(如果用户池具有不同的权限状态,则应具有多个帐户)。否则,他们可能只是开发一些很棒的东西,进行部署,然后发现它对用户不起作用。
还有太多方法可以用管理员帐户来破坏计算机(是的,我已经做到了)。IT部门需要一项政策,如果他们不能快速修复它,他们将重新映像开发人员的计算机。在与我签约的一个地方,我必须签署该政策的副本才能获得我的管理员帐户。
这是一个非常特定于Windows的答案。在Linux和其他Unix-y系统中,开发人员通常只能使用用户帐户,通常不需要其他帐户进行测试(如果他们拥有可以使用sudo的帐户,他们就会知道何时使用sudo,但他们可能需要具有相同组权限的一个,并且很容易对OS造成不可思议的破坏,因此,必须采用相同的IT策略。
绝对!我还要如何安装下载管理器以在晚上下载电影?
有时,开发人员确实需要在系统中进行安装或更改,以测试一些想法。如果您每次需要更改某些内容时都必须致电管理员,那将是不可能的。
我也有个人观察,有些管理员倾向于尽一切可能使每天很少的事情依赖他们,从而……确保他们的工作呢?惹恼其他用户?没有答案 但是这里没有常识。
上次我的PC出现问题时,我积极参与了系统的恢复工作,并提出了一些与管理员一起工作的建议,或者因此,我想...管理员变得非常生气,并指责我试图教书他或重新定义规则。我想这只是他的自我,因为在我们的其他同事中没有看到他在我们房间里那么酷。
答案是,开发人员应该有2台机器!!
具有管理员权限,足够的功能,内存,屏幕大小,可移植性和ADMIN特权的开发人员之一,已加载公司防病毒软件,但开发人员可以在需要时使用自动重置策略对其进行配置。
具有公司工作量,策略,非管理员用户特权等的一个公司。开发人员可以将其用于单元测试发布模式应用程序,因为某些开发人员习惯于使用管理员权限进行所有单元测试。
首先,Power User本质上是管理员-因此,将用户“ 限制 ”为Power User不会增加系统的安全性-您最好还是管理员。
其次,开发人员当然需要对其开发人员机器(以及服务器和第二个盒子等)的管理访问权限,但是在正常的开发或测试过程中,当然没有人应该以管理员身份交互式登录。为此和大多数应用程序使用普通用户帐户。
您真的不想以管理员身份运行[插入任何浏览器,插件,IM,电子邮件客户端等]。
即使您在需要时可能具有root用户访问权限,通常也不会以root用户身份登录到Linux机器。
为开发人员提供一个单独的个人管理员帐户(最好是域帐户)到他/她的机器(该帐户也是该用户需要管理访问权限的其他开发/测试服务器和机器上的有效管理员)。
在Vista + UAC中使用“运行方式”来提示或请求提示,并仅在需要时输入任务和进程的管理凭据。具有智能卡或类似功能的PKI可以大大减少经常输入凭据的压力。
然后审核访问。这样就具有可追溯性,并且是一种简单的方法来找出谁正在使用您现在必须访问的特定开发/测试服务器上的终端服务会话。
当然,肯定有一些开发工作永远不需要本地管理员权限-像大多数Web开发一样,其中的部署是针对单独的服务器或虚拟机进行测试的,而Cassini或用于本地调试的任何内容实际上都可以像普通用户一样正常运行。
我主要在* nix领域工作,开发人员使用的标准模型是在普通的非特权用户帐户中工作,并具有(通过sudo
或su
)根据需要/在需要时升级为管理员特权的能力。
我不确定等效的Windows设置是什么,但是根据我的经验,这是理想的设置:
一方面,按需提供管理员权限可以在需要时为开发人员提供充分的管理权。
另一方面,Windows软件假设所有用户都具有管理员权限的历史由来已久,以至于许多程序不会为非管理员用户运行。Windows的许多安全问题直接源于这一隐含要求,即为了能够可靠地使用计算机,所有用户都必须是管理员。 这必须进行更改,并且确保您的软件将以非管理员用户身份运行的最有效方法是让开发人员以非管理员用户身份运行软件。
[抱歉,英语不是我的母语,我正在努力:)]
个人经验(我是c ++ / SQL开发人员):
在以前的工作中,我曾经是Windows计算机的管理员。我还对数据库(包括生产环境数据库)拥有dbo(而非dba)权限。在两年半的时间里,八个人拥有了这些疯狂的高权利...我们从来没有遇到任何麻烦。实际上,我们通过手动更新db解决了很多问题。对于修补程序和开发人员,我们可以真正快速地完成许多工作。
现在我换了工作。我设法(哭了很多)成为Windows计算机的管理员。但是dev服务器是我们使用ssh连接到的Red Hat服务器。尝试安装Qt是一种折磨,配额限制,空间限制,执行和写入权限。我们最终放弃了,请管理员为我们做。2周后仍未安装任何软件。我的报纸阅读和alt + tab命中速度很快。
我要求管理员权限,因为只有我的软件开发人员才使用此计算机。
->答案:“如果有进程,则不要执行任何所需的操作。它必须在生产中运行一次”。
->试图向非技术经理解释:“在生产或UAT环境中,我将没有任何管理员权限。但是我的开发机器是不同的。如果我要构建椅子而不是软件,请问我可以我不会在车间里放任何我想要的工具,因为我的车间需要看起来像椅子将要使用的地方吗?我给uat提供了一个可执行文件包。我用来构建它们的库和工具对于最终用户或花花公子安装软件包。”
我今天还在等。我找到了解决方案,打开了开发环境,去找您喜欢的在线裁判,挑战自己。当有人看着您的屏幕时,他会为您编程。;)
您可以通过两种方式回答。是和否,或者取决于。-我能说得更模糊吗?
这取决于他们是否需要完成工作。如果可以,则授予他们对计算机的管理权限。如果没有,那就不要。并非所有软件开发都要求工程师具有管理员权限。
是,否取决于您的观点。一些工程师将其计算机视为自己的域,这是其域的规则。其他人不想承担责任。
我曾在一家没有管理员权限的公司工作,每当我需要做一些需要管理员权限的事情时,我都必须致电服务台,他们授予我临时管理员权限,直到我重新启动。有时候这很痛苦,但是那是我一直生活的方式。我还曾在对计算机拥有完全管理员权限的地方工作。除了我安装一些连接操作系统的软件并不得不将我的计算机带到服务台并让它们重新映像硬盘驱动器之外,这非常棒。
我个人认为工程师应具有对其计算机的管理权限,但应理解,如果他们搞砸了它,则可以重新加载新的基准映像,并且他们将失去自原始基准以来所做的一切。我不认为公司中的每个人都应该拥有对其计算机的管理权限。会计,行政助理和其他部门实际上并不需要拥有这些权利,因此不应授予这些权利。
ht tp://msdn.microsoft.com/zh-CN/library/aa302367.aspx
以我的经验,我们(编码器)和他们(安全性)之间总是需要折衷的。我承认(尽管我讨厌),上面的Microsoft文章中有优点。由于我已经当了多年的程序员,所以我经历了痛苦,我只需要安装一个不同的调试器,而这就是我无法忍受的烦恼。它迫使我创造性地思考如何完成工作。经过与我们的安全团队作战的多年(和几次讨论),我了解他们必须保护所有区域(包括我的台式机)的工作。他们向我展示了每天出现的漏洞,即使在最简单的Quicktime应用程序上也是如此。每当我想安装快速实用程序或调整本地IIS时,我都会看到它们的烦恼,这可能会导致严重的安全问题。直到看到另一个开发人员被罐装,我才完全理解这一点。他试图进行调试,最终关闭了Symantec,只是为了向数百人感染(然后提供)一些病毒。一团糟。与“安全负责人”之一(安全人员)交谈时,我看到他只想说“告诉你……”。
我了解到,我们的专家(至少我的专家)只是想保护我们的公司。好消息是我们确实找到了一个折衷方案,并且我可以完成工作,并且我们的安全网络可以保证安全!
信条
是的,如果您希望测试者或一些熟练的恶意用户立足于威胁您的域名。
即妥协低级别帐户>查找位置admin-> Mimikatz->提升权限->域admin。
所以不,普通用户不应该是管理员。
微软也曾说过UAC不是安全边界,所以不要这样使用它。现实世界中可以使用各种绕过UAC的方法。
如果他们需要管理员作为其工作角色的一部分,则请给出单独的域本地管理员用户帐户,这些帐户仅用于安装软件(仅在其自己的计算机上具有管理员权限),而不用于一般用途或Internet访问。这应该具有更严格的密码策略(例如,最小长度为15个字符)。为此应使用Runas功能。
普通用户帐户为admin的任何环境都会导致安全灾难。
哇,这个问题肯定会带来一些有趣的答案。在答复中,我引用了经常使用的-'取决于':)
在小型公司中,这可能仅仅是出于务实的考虑。开发人员也可能是技术上最熟练的人,因此对他们自己的计算机进行管理很有意义。
就个人而言,我是“管理员帐户”的粉丝,可以在必要时使用它-即“运行方式..”(我注意到这种方法的原理与以后的UAC非常相似)。
如果您正在开发台式机软件,那么对于开发人员来说,在其最终用户将要经历的范围内工作(即有限或受限制的权利)并不是一个坏主意。如果您以有限的权利来构建软件,则很有可能遇到相同的权限集,目标用户将面临同样的问题。
话虽如此,如果您有一个好的测试实验室和/或一个好的QA团队,这可能是一个有争议的话题-尤其是如果您有半个像样的ALM练习。
所以最后-我在没有UAC的情况下发展,主要是因为我相信自己和我的技能。在团队环境中,我将它付诸表决。在大型组织中,您可能没有这种自由。.企业管理员通常拥有最终决定权:)
这取决于开发人员的技能以及他/她是否是顾问。
我认为,经验丰富且值得信赖的开发人员有权使用自己的PC做他/他想要的任何事情,只要这不会损害她/他的生产率。