本地“用户”权限是否足够?开发人员在编码时是否需要本地管理员或超级用户?


17

我们有一个离岸开发人员,他们有在公司台式机上安装废话软件的习惯(这与他们的工作功能无关),因此我们正在考虑取消其本地管理员权限。

VS2010是否需要本地管理员或本地超级用户?在没有提升权限的情况下如何运行?您会遇到什么问题?



Answers:


19

程序员应以具有管理员权限的受限用户身份工作。也就是说,程序员应该是计算机的管理员,但是在工作时,他应该始终使用受限的用户帐户。

如果您需要提升的权限才能工作,那么除了安装软件之外,您所做的事情都是非常错误的。更糟糕的是,如果您以超级用户身份工作或禁用UAC提示等功能,那么您将忽略会影响软件最终用户的问题,迫使他们以与您相同的特权运行。错了

不管您使用什么操作系统,这都是事实。尽管Windows似乎是唯一出现的Windows。

澄清:

当我说开发人员应该是受限用户时,我的意思是他们应该对计算机拥有完全的管理员权限,但是当他们测试其代码时,应该在受限用户环境中进行。例如,开发人员可能以具有管理员权限的用户身份操作计算机,但在虚拟机或受限用户帐户中运行所有测试。在Linux上,这仅意味着开发人员具有sudo访问权限。在Windows上,这可能意味着具有UAC和其他安全功能的管理员级别帐户已完全启用。


5
在某些情况下,需要以管理员身份运行(例如,调试在IIS下而不是在开发Web服务器下运行时显示的问题),但是对于日常开发,您是正确的不需要(也不应)以管理员身份运行。
迪恩·哈丁

2
“始终使用受限用户身份”的另一个例外:您需要(重新)启动/停止服务
Victor Hurdugaci 2010年

3
@Victor Hurdugaci:这就是为什么我说管理员访问权限应该可用。当我说程序员应该以受限用户的身份工作时,我并不是说他们不应该管理自己的计算机。
greyfade

9

这是一个政治或管理问题,而不是技术问题。

考虑创建并传达一条“我们不希望您安装与您的职务功能无关的软件”规则,以便老板可以相应地跟进。

为此,系统管理员可以要求每台计算机提供已安装程序的列表。如果您定期执行此操作,则可以编写一个小程序来显示已安装的程序,因此可以快速获得概述。

也就是说,除非上述程序是非法的或在道德上是不可接受的,否则为什么这首先是一个问题?


13
+1:如果您不信任程序员以本地管理员权限运行,那您就不能信任您的程序员了。
Kramii

@Kramii-在这里,我再加上一个句点
安托

6

这取决于您期望他们独立发展。

诸如IIS配置,远程调试,修改对GAC的访问权限,运行自己的MSI的功能之类的事情肯定会受到影响。如果这些都是您期望外包资源独立完成的事情,那么我将不会尝试大量测试。

如果您的外包人员正在使用桌面应用程序,他们可以在本地进行调试,那么您可能会遇到一些麻烦。

假设他们使用的是源代码控制,您总是可以计划对计算机进行定期重新映像。

我工作过的大多数地方在很多情况下都是第一种情况,并且期望高度独立,因此所有开发人员都是本地管理员,并且如果您在任何计算机上安装未经批准的软件并引起问题,则公司政策允许采取纪律措施。


6

我需要管理员权限才能在开发MacBook的端口80上启动Apache。除此之外,没有理由我不能在没有管理员权限的情况下处于锁定的计算机上。如果确实需要,我可以使用非标准端口。从企业资源的角度来看,让开发人员不具有其计算机的特权用户是有意义的。

但是,将开发人员锁定在他们的机器上需要有一个反应迅速且愿意的管理团队。如果我自己不能安装东西,我需要有人可以帮我砍,不要让我经过三轮审批。如果企业不愿意这样做,那么他们应该让开发人员充分发挥自己的作用。

显然,我更喜欢后者,但是我可以看到前者的智慧。


4

我绝大部分时间都不以管理员身份运行VS 2010。但是,如果要添加或删除服务,配置IIS或在注册表中进行修改,则需要管理员权限。另外,一些性能分析工具还建议您以管理员身份重新启动VS。因此,我认为向您的离岸人员提供没有管理权限的帐户将使他们无法从事某些(也许很小)的工作。

而且,随着UAC的兴起,现在可以在没有管理员权限的情况下安装越来越多的应用程序。他们没有将东西放在HKLM中,他们没有碰到System32下的任何东西,他们将exe放在users \ whoever文件夹下的某个位置,这使它们更容易删除,但可能无法解决他们最初安装“废话软件”,我假设您是指游戏,音乐播放器等。

如果您确实想防止本地安装,那么最好的选择是Java早期的“网络就是计算机”这一古老愿景。每个人都使用版本控制系统工作,并且必须每天晚上登记入住或搁置,然后才能回家。电子邮件驻留在云中,而不在开发机器上。等等,然后只要您愿意,就可以重新映像他们的开发机(即使它们是虚拟的也更容易),而那些没有额外安装的机器甚至都不会注意到。有点像在周末清理办公室的冰箱。

但请注意-我不会在那种环境下工作。我安装了实用程序和助手,偶尔玩游戏,对尝试阻止两者的人都不会客气。我像地狱一样富有生产力。如果您的某些开发人员工作效率低下,那么取消他们的本地安装将不会使他们更加高效或专注。从根本上解决该问题,您不会介意他们是管理员。


3

我想应该从开发人员那里删除管理员权限,同时指派一名系统管理员为团队安装软件。如果您既没有管理员权限,又不能要求管理员为您安装东西,那么您面对的挑战就不多了。就像您将分支机构的团队锁定在监狱中。


1

这取决于您要编写什么软件。

如果您的软件不需要侵入系统,则无需管理员权限。


更好的解决方案:出于安装/测试目的,可能要使用VM或测试实验室计算机。


0

我已经看到了两种方法。一种是让每个人都在笔记本电脑上工作,他们必须在回家时向管理员求助。一旦管理员拥有了它,他们将粘贴在CD中,该CD将对计算机进行重新映像。重新成像后,它会放在架子上,可供需要它的下一个人使用。只要确保所有机器都是相同的,那么您就不会被所有正在寻找“好”机器的人所困扰。

我看到的另一件事是让所有人都从Citrix服务器启动。这些机器根本没有本地存储,它们只是从网络加载标准映像并从中运行。如果您有需要不同配置的不同“类型”用户(例如,UI开发人员使用Silverlight的图像,WCF开发人员使用IIS和SQL Server等),则此方法会更好。

但是,尽管如此,我认为Thorbjorn [原文如此]令人头疼:这是一个管理问题,可能无法通过技术解决方案得到充分解决。

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.