Windows开发人员权限?


9

我在一家财富500强公司中担任Windows R&D软件开发人员。企业IT当前正在为全公司范围的Win7部署做准备,作为其一部分,他们希望完全锁定所有设备(包括我们的开发人员工作站)上的管理员权限。

我受命与他们一起工作,以使过渡尽可能顺利。幸运的我。

我想知道是否有出版或其他备受尊敬的资源可以用来:

  1. 找出在沙子上画线的位置
  2. 支持我的立场。

就个人而言,我认为我们是研发部门,而我们的工作是要做“开箱即用”的事情。因此,我们需要管理员权限。但是,以Windows Admin开始我的职业生涯后,我意识到他们的目标以及他们需要实现的目标。我需要弄清楚和备份的是一种构建环境的方式,使IT和R&D都能与之共存并继续高效地开展工作。

具有本地管理员权限的开发VM肯定会有所帮助,但由于我们与许多自定义硬件交互,因此并非在所有情况下都可以。

推动这些改变的CIO绝对是“纯IT”人士,对开发过程的了解有限,因此我需要一些参考资料,以便与类似的人分享。

我不想收集很多个人意见(在这里已经分享了很多个人意见),我确实需要白皮书,杂志文章,学术著作等来为高层管理人员提供有力的依据。


1
相关(但没有研究的参考资料那里,我可以看到):programmers.stackexchange.com/questions/4596/...
亚当利尔

Answers:


9

因为您专门使用Windows 7,所以您应该努力成为自己的管理员。有两个非常好的理由阻止开发人员成为管理员:

  • 出于同样的原因,您要让其他所有人都不再是管理员,因此,如果恶意软件恰巧运行起来,它并不会做真正糟糕的事情
  • 因此他们不会编写仅当您是管理员时才能运行的应用程序

使用UAC,这一切都不会发生,因为除非您有意地要求您启动启动的应用程序,否则它们不会以管理员身份运行。因此,让您拥有管理员帐户的风险很小。

一些老板有第三个原因-我不希望您安装游戏或未经授权的工具。在不讨论此原因的优点的情况下,我将观察到它通常未被阐明。您需要管理员权限才能安装正在编写的内容,配置IIS,重新配置计算机以进行各种测试(例如,编辑主机文件),并且避免管理员访问的两个“真正”原因不再适用于Windows 7因此,您应该是管理员。


5

老实说,我认为这将是一个艰难的案例。一旦高层决定,就很难改变他们。如果他们在您的计算机上允许更多特权,则其他人可能可以访问和执行整个计划旨在防止的操作。

这些可能会帮助:

PS:祝你好运!


谢谢回复。我知道他们正在努力实现的目标(我的职业生涯始于IT /服务器管理)。我正在寻找的是一种建立最少限制的环境的方式,使IT和R&D都可以生存并继续开展工作。

由于与serverfault的链接而遭到支持-我的猜测是,OP绝对应该能够在此找到他的情况的一些论据。
Astrotrain,2014年

3

一种选择是要求允许管理访问的测试工作站。

另一种选择是完全按照他们所说的去做。然后,当下一个项目开始时,您将不会取得任何进展,因为您必须为每一个小小的变化都去IT部门。向项目负责人解释,他将迅速安排管理员权限。

第三种选择是检查您的部门是否代表Win7迁移项目。如果是这样,请与您的代表联系,并询问他是否可以将管理权限添加到您部门的需求列表中。

第四个选择是交易。迁移项目通常需要开发才能为Win7更新其软件。在新环境中,可能有可能对管理员权利持支持态度。


3
不起作用-只是意味着您必须在没有调试器之类的情况下完成工作,而这是您执行速度缓慢的错
Martin Beckett

1
@马丁·贝克特(Martin Beckett):嗯,楼下的同事有这个问题。他们采用了PM方法,并且PM安排了本地管理员,更快的笔记本电脑和更大的屏幕。
Andomar 2011年

取决于谁在执行no-admin策略以及其严格程度。如果(例如此处的)是CIO,并且他不是来自开发背景,那么最好假设应该有例外,而不是假设您可以获得例外。
David Thornley

3

我无法想象在没有本地管理员的情况下尝试进行开发,但是我认为需求会根据开发任务以及工作场所中的开发流程和工具链的标准化程度而有所不同。

根据我的经验,通常会有高级开发人员需要安装各种开发工具(有时在几小时内)以快速制作原型或解决一些关键问题。他们几乎肯定需要本地管理员访问权限才能安装,调试,使用服务等。

如果您的工具集相当稳定,并且取决于他们开发/调试/部署的对象,其余的员工可能会没有它。我的建议是将一小撮最有头脑的高级开发人员聚集在一起,说明问题及其选择,然后让他们花几天时间考虑一下,然后召开计划会议以确定哪种访问方式工作人员应该有。


3

从纯IT角度和发展角度来看,许多公司以这种方式解决问题:

将所有开发盒放在单独的网络上。 开发网络可能是完全隔离的(没有Internet,也没有Intranet)。在这种情况下,开发人员有一个单独的公司邮箱,用于电子邮件和官方通讯,即访问Internet和Intranet。该解决方案有其自身的挑战,因为某些IDE(例如Eclipse)和其他开发工具假定您已经与Internet保持实时连接以获取更新和插件。仍然大多数开发工具都知道存在隔离的网络。

这种方法的另一个变体是将开发网络放在子网上。 您可以通过严格的DMZ防火墙间接访问Internet和Intranet,但开发人员仍具有本地管理员访问权限。


1
+1进行分离,将开发人员像远程用户一样对待,这往往可以很好地缓解企业IT的困扰。
Wyatt Barnett

“没有互联网”,你的意思是他们不应该在他们的开发机器上使用Stackoverflow吗?
mbx

正确。独立的互联网和发展机器
Berin Loritsch

1

考虑给开发人员两个帐户。

第一个是普通的非特权用户帐户,该帐户可用于所有日常工作(包括软件开发)。另一个是本地管理员帐户,仅在特定计算机上具有管理员权限。仅在实际安装东西或调整机器设置时才需要使用它。

确保日常服务(例如Internet代理服务器,电子邮件等)只能识别普通帐户,因此开发人员不能一直只使用本地管理员。每当需要管理员权限时,UAC就会弹出,并为开发人员提供输入本地管理员登录详细信息的机会。


这就是我在我的工作了,它工作得很好+ 1
雷米

1

从根本上来说,软件开发与计算机的其他使用完全不同,因此必须将其视为如此。

具有编写自己的代码的能力,更重要的是在调试中跟踪代码执行的能力,要求您拥有计算机的权限,在任何其他情况下,这些权限都将对本地安全性造成巨大风险。改为咬一口:

软件开发所需的权限不适用于典型用户。

为了完成您的工作,您需要是本地管理员。但是,通过成为本地管理员和规避安全策略,从理论上讲,您对网络的其余部分构成了风险。因此,这个问题也需要解决。关键安全公司解决此问题的方法是通过施加两个简单规则:

  1. 程序员是其开发计算机上的本地管理员访问权限。
  2. 开发机器未连接到公司网络。

第二条规则如何发挥效果取决于IT部门。有时,开发机器是自己隔离的,没有进出网络(在几个国防承包商中见过),有时,开发机器连接到“来宾”或“ DMZ”网络以允许Internet访问(下载补丁,访问文档)等),而不会给公司网络带来不必要的风险。

现在,您会在此找到一些官方资料吗?我想这取决于您认为谁是官方。关于此事的意见基本上是一致的。但这很容易理解,很少被提及。有点像在问:“ 我的汽车应该停车制动吗? ”您不会找到权威人士来谈论这个话题,因为他们有更好的事情要做,而且每个人都已经知道了答案。


0

您可以使用虚拟环境吗?

如果您不做大量图形工作,那么在vmware或virtualbox中运行MSVC很好(如果您有很多ram),则可以在虚拟环境中拥有admin,并且“其”安装已被锁定


2
相反可能会更好:在虚拟环境中使用公司工作场所。公司IT通常无论如何都为经理提供此功能,而您仅使用它来阅读和发送电子邮件。
Andomar 2011年

是的,但是如果问题不是让您拥有管理员权限来运行无济于事的调试器或测试安装
Martin Beckett

很好的想法是,虚拟服务器位于公司网上,但您不在。因此您可以成为本地管理员
Andomar 2011年
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.