Win 2008 Server 发生了哪些变化,导致 Samba rpc 控制不再起作用?

Win 2008 Server 发生了哪些变化,导致 Samba rpc 控制不再起作用?

我很高兴地使用 Sambanet rpc service ...从我的 Linux 机器上控制 Windows 2003 服务器上的服务,但是现在控制 Windows 2008 服务器却出现WERR_ACCESS_DENIED错误。

看来 WinXP(使用sc)也存在此问题,但 Win7 上一切正常。Windows 2008 服务器允许远程访问的方式是否发生了变化?在客户端(Samba)端可以采取什么措施来解决这个问题?

提前致谢!

(Samba 3.6.3,Win2008R2)

答案1

看起来权限自 2003 SP1 以来已经发生了变化;”非管理员的服务控制管理器安全性“有更多信息和修复程序,允许经过身份验证的用户列出服务。

我正在尝试使用“sc sdshow”和“sc sdset”命令,以便能够从我的 unbuntu 机器控制 win7 home 上的 cygwin sshd 服务。该文章中的第一个 sdset 命令使我能够列出来自 linux 的一些服务,因此它很有希望。

我会尝试回复更详细的说明,但这应该足以帮助您入门。祝您好运。

更新

好的;这就是我所做的,它似乎奏效了。请注意,您必须在提升的“cmd.exe”中运行这些命令 - 在开始气泡中搜索“cmd”,右键单击,以管理员身份运行。

  1. 首先,获取服务控制管理器的当前安全描述符:

    sc sdshow scmanager
    
    D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)
    

    这几乎与上面的链接中列出的完全一样。输出的形式是D:(DACL)(DACL)(...)S:(SACL)(SACL)(...)。每个 DACL 都构造为;-delimited 字符串。第一个、第三个和最后一个字段是重要部分。第一个字段表示A“允许”,D第三个字段表示“拒绝”。最后一部分是知名用户或组的缩写,或者是用户或组的 SID。第三个字符串是一系列权限 - 每对字符一个权限。完整细分位于“MSDN 文章:ACE 字符串“。对于服务控制管理器,“权限”字段中字符的含义略有不同,对于服务也不同。如果您交叉引用第一个链接中的三个表,您将明白我的意思。例如,命令(A;;CC;;;AU)给出的sc sdshow scmanager意思是允许经过身份验证的用户连接到服务控制管理器。本文建议将其扩展为(A;;CCLCRPRC;;;AU)“CC”、“LC”、“RP”和“RC”——“连接”、“枚举”、“查询锁定状态”和“读取控制”。基本上,我们只是赋予“AU”——“经过身份验证的用户”与“IU”——“交互式用户”——登录到 Windows 的用户相同的权限。当您使用“sc sdset”更改 DACL 时,您替换整个条目,因此您只需修改对您的目的很重要的 DACL,然后复制其他内容。

    sc sdset "D:(A;;CCLCRPRC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)"
    

    请注意我刚刚如何替换与“经过身份验证的用户”相关的 DACL。

  2. 好的,现在是简单的部分。为此,您需要“subinacl”——如果您没有,您可以从各种 Microsoft 网站下载。(您可以使用“sc sdset”,但“subinacl”更简单。不幸的是,“subinacl”仅适用于实际服务,而不适用于服务控制管理器,因此这是第一步。)我个人稍微偏离了文章,我没有授予我的用户对服务的权限,而是创建了一个本地组,并将自己添加到其中。

    net localgroup "Service Operator" /add
    net localgroup "Service Operator" "My Login Account" /add
    
  3. 接下来,我授予该组对 sshd 服务的完全控制权:

    subinacl /service sshd "/grant=Service Operator=F"
    
  4. 在我的 Linux 机器上,我现在可以启动和停止该服务:

    beltorak@kryos [~]
    $ net -S diabolique rpc service stop sshd
    Enter beltorak's password:
    ..
    sshd service is stopped.
    
    beltorak@kryos [~]
    $ net -S diabolique rpc service start sshd
    Enter beltorak's password:
    ..............................
    Failed to start service: sshd [WERR_OK]
    

我不知道为什么它显示“失败:WERR_OK”——我认为这相当于一个错误对话框,显示“错误:成功”。在 win7 机器上验证服务的状态明确表明我现在可以从我的 linux 机器控制该服务。

注意:向服务操作员组授予服务控制管理器的额外权限可能是明智之举 - 我确信对“经过身份验证的用户”的权限限制是有原因的 - 并将 sshd 上的权限限制为启动和停止服务所需的权限。我很高兴它能正常工作,这是一个家庭网络,所以我完成了。

相关内容