如何管理Windows(如Linux / Unix):通过组成员身份的管理权限而不会发生意外,也不会共享管理员密码?


8

我正在对Windows Server 2003/2008环境进行一些根本性的更改。在Unix方面,我的安全性约束很简单:

  1. 应该具有管理员权限的用户在一个特殊的组中(“ wheel”或类似名称)。
  2. 当这些用户登录到这些计算机时,他们仍然没有管理员权限,直到他们显式执行具有那些管理员权限的命令(“ sudo命令”或“ su”)。
  3. 即使使用“ su”(有点像“ runas”)执行命令,他们仍然需要输入密码:他们自己的密码。

在这个系统中,我可以控制谁拥有管理员特权(通过组成员身份),防止他们意外地执行具有管理员特权的事情(通过要求“ su”或“ sudo”),并且永远不会泄露核心的“管理员”(即(“ root”)密码,因为要求输入自己的密码。

如何在Windows Server上执行等效操作?我看到的选项是:

  1. 将用户添加到本地管理员帐户:但是,他们所做的所有事情都是以admin身份进行,因此有可能出错。
  2. 要求他们执行“ runas管理员”:但是,他们必须知道管理员密码,我不想与他人共享密码。

有没有我可以同时解决的解决方案:通过组成员身份控制谁可以访问;要求他们使用单独的密码,以防止他们意外地损坏设备;阻止他们知道管理员密码?

Answers:


8

首先,只有管理员才能获得管理员访问权限,因此,除非有一个巨大的理由(我想不到),否则他们应该留给管理员;在极少数情况下,普通用户会获得管理员权限,即使那样,我通常也对他们为什么需要它持怀疑态度。

其次,您可以通过使用Windows中的“组成员身份”来完成您想做的事情。您并不是说您使用的是Active Directory,所以我不确定您是否拥有域并且正在这样做,但是您可以创建安全组并向其中添加单个用户帐户。 看这里。 我不会将用户单独添加到服务器上的本地管理员组中,因为这会造成混乱并且难以跟踪,并且会给您带来很多麻烦,并给您带来潜在的安全问题。如上所述,我要做的是创建一个安全组,并向该组添加要具有管理员权限的成员。您将为用户创建两个用户帐户;一个用于常规登录,然后是第二个仅用于高级操作的帐户。您可以将用户的“更高/特权”帐户添加到“安全组”中,然后,可以将该组放入实际服务器上的提升的本地组成员身份,例如Power Users。这将使他们无需管理员即可执行许多功能。

至于“以管理员身份运行”,您不必一直这样做。使人们在不知道管理员或任何管理员密码的情况下运行事务的最佳方法是使用Shift +右键单击,然后选择“以其他用户身份运行”,或者右键单击并以管理员身份运行。您首先要为其创建一个具有更高权限或提升权限的单独用户(如上所述,该提升用户将再次被添加到安全组中),然后可以使用该用户来运行在使用普通/标准用户帐户登录时始终需要提升权限。看我的截图:

在此处输入图片说明

就象以admin身份运行一样,这应该照顾您想要做的事情。我可能要补充的最后一点是保持UAC的状态。如果执行此操作,则将要求用户输入他们在服务器上执行的操作的(提升的)密码,而不是管理员密码。当您不得不多次输入时,这很痛苦,但是出于安全考虑,这是值得的。


这正是其他2条建议的内容。没错,我们正在运行AD,并将它们添加到服务器管理组中,该组将具有本地管理特权。
deitch 2014年

RE:,Run as Administrator任何管理凭据都可以。如果您登录的帐户没有管理凭据,则系统将提示您输入用户名和密码,并可以在其中输入管理帐户。您的帖子并没有说清楚。
HopelessN00b 2014年

在这种情况下,我正在谈论的系统管理员。好的安全性惯例是,系统管理员不要拥有生产/系统帐户密码,而只能以自己的帐户身份运行。我想将此扩展到sysadmins。
deitch 2014年

1
@deitch是的,这正是我们在$ [dayjob]的工作。我们所有的IT人员都有普通的用户帐户和管理帐户。以受限用户身份登录所有内容,并对Run as Administrator需要提升权限的任何内容执行该选项。除非必须使用本地管理员用户,否则他们不会使用(域信任中断等)
HopelessN00b 2014年

2
@ HopelessN00bGeniusofnetwork,所以RunAsAdministrator并不表示“以管理员身份运行”,它的意思是“只要具有管理员权限的任何帐户都可以运行,只要您可以为任何此类帐户提供凭据”?
deitch 2014年

5

将其标准帐户保留为“标准”。为他们创建一个特权第二帐户,并将其添加到各个管理组中。对特权帐户使用“ runas”。(您可能会发现使用admin帐户禁用交互式登录很有用,但是随后再次出现-这可能会很烦人)。


1
我知道了。因此,您有2个帐户:Sobrique和SobriqueA。SobriqueA被禁止登录到控制台/远程系统上的任何系统,只能运行runas。SobriqueA是具有管理员权限的组的成员。用户以Sobrique身份登录,然后执行“ runas SobriqueA”(需要SobriqueA密码),所有这些命令都以完全管理员权限运行。这有点令人费解,但可能会更糟。
deitch 2014年

2
那是正确的。
布拉德·布查德

1
+1用于解决禁用交互式登录的问题。否则,用户将只使用管理员凭据登录,并且OP会担心以管理员身份执行的每个操作。
拜伦C.

4

在Server 2003中,您需要使用该Run As...选项以具有管理特权的帐户身份运行。

在Server 2008+中,可以使用UAC和/或Run as Administrator建议的选项。这并不需要知道密码 [本地]管理帐户-任何管理凭据都行。

因此,您可以将其帐户添加到本地管理组,或者从安全角度考虑,最好将其创建为单独的管理帐户,然后将其添加到本地管理组。然后,当他们需要使用管理特权运行某些程序时,UAC将提示您提供管理凭据和/或使用Run As.../ Run as Administrator选项。


这与@sobrique的答案非常相似。那么Win认为帐户是否具有管理员权限?并且它没有“如果该帐户明确要求并重新验证,则该帐户有权以admin身份运行”这个概念?
deitch 2014年

1
基本上没有 Windows具有很多安全权限-通常将这些权限分配给组(因为每个用户都很讨厌)。小组成员授予权利。常见的做法是使用管理员帐户登录,因为这很容易-但这并不意味着正确。我们有用于登录管理服务器(已安装各种Windows管理工具)的本地用户帐户和域管理员帐户。
Sobrique 2014年

可以摆弄“ secpol.msc”并配置自定义权限配置文件-将访问权限授予“不完全是管理员”组,然后向其中添加基本用户帐户。但是无论如何,您可能仍然会因需要一个“适当的”管理员帐户而绊倒。
Sobrique

1
@deitch好吧,这实际上是UAC允许的。它允许您以管理帐户身份运行,但是会提示您任何需要“提升”的内容。(分割令牌身份验证。)从技术上讲,这不是Windows创建“管理员还是非管理员”二分法的问题,但是以管理员身份运行某些东西是一种常见功能,因此它具有特定的菜单选项。在大多数情况下,此选项不是绝对必要的(您可以始终以恰好是管理员的其他用户身份运行),但是在该菜单选项中更方便。
HopelessN00b

1
那么,约翰仍然需要知道凭证管理帐户运行的东西作为一个系统管理员-它只是不必须是管理员帐户。
HopelessN00b 2014年
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.