【问题标题】:How to create read-only network share programmatically?如何以编程方式创建只读网络共享?
【发布时间】:2010-11-21 01:15:14
【问题描述】:

如何在 Windows XP 下创建具有 C/C++ 或 Python 只读权限的管理网络共享 [1]?

[1] 需要通过共享访问 C:\Program Files。

【问题讨论】:

    标签: security networking windows-xp


    【解决方案1】:

    首先使用NetShareAdd() 创建共享。这将与null ACL 共享目录,这相当于允许每个人完全访问。在 Windows 上无法使用NetShareAdd 配置权限。

    创建共享后,通过调用GetNamedSecurityInfoW() 传入共享名称、SE_LMSHARE 作为ObjectTypeDACL_SECURITY_INFORMATION 作为SecurityInfo,获取共享的安全描述符。获得描述符后,使用正常的 Windows 安全调用来配置 ACL。

    【讨论】:

      【解决方案2】:

      查看 C/C++ 的 NetShareAdd()(MSDN 在页面末尾包含示例程序)。

      【讨论】:

      • NetShareAdd() 不允许您设置权限。该示例不使用任何权限。
      • 示例选择不这样做,但您可以。检查 SHARE_INFO_2 结构的信息页面,有一个权限成员可以设置为 ACCESS_READ。 msdn.microsoft.com/en-us/library/bb525408(VS.85).aspx
      • 我们试过了。如果您查看“shi2_permissions”字段的文档,它会显示“注意 Windows 不支持共享级安全性”。也许可以用 SHARE_INFO_502 来代替?知道如何为其创建只读安全描述符吗?
      • 检查这个专家交流问题,最后这个家伙能够使用 SHARE_INFO_2 和 ACCESS_READ 将他的共享文件夹设置为只读(他遇到的问题可能与你的不同,但最终 ACCESS_READ似乎仍然有效)experts-exchange.com/Programming/System/Windows__Programming/…
      • (对不起,我想直接链接到专家交流会隐藏答案...在谷歌搜索“以编程方式共享文件夹”,它是顶部的第三/第四个选项 - “以编程方式共享文件夹!”)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      • 2018-11-04
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      相关资源
      最近更新 更多