以编程方式在非 Windows 计算机中创建共享文件夹
Creating a shared folder in a non-windows machine programmatically
我正在尝试使用NetShareAdd() Windows API函数在Linux框中远程创建共享文件夹。我有一个使用 samba 共享的文件夹,我可以在那里远程创建目录;但是当我尝试在这样的机器中创建网络共享时,我总是ACCESS_DENIED。
你知道这是否可能吗?如果是,你对如何做到这一点有一些想法吗?
这是一个小测试:
int main()
{
SHARE_INFO_2 sh;
sh.shi2_netname = L"shr004x";
sh.shi2_type = STYPE_DISKTREE;
sh.shi2_remark = L"This is a shared test";
sh.shi2_permissions = ACCESS_ALL;
sh.shi2_max_uses = 17;
sh.shi2_current_uses = 1;
sh.shi2_path = L"/mnt/Storage/Test/test001"; //No matter what I put here, I always get access denied (5)
sh.shi2_passwd = NULL;
DWORD hr = ::NetShareAdd(L"172.16.212.40", 2, (LPBYTE) &sh, NULL);
cout << hr << endl;
getchar();
}
您需要将磁盘操作员权限 (SeDiskOperatorPrivilege) 和 Samba 配置为允许创建共享。
参见 smb.conf(5) 手册页 '添加共享命令' 选项说明。
相关文章:
- 在为LINUX创建共享库时,如何避免STL的私有/弱副本
- 在创建共享库时,是否可以明确地排除某些类
- 为什么从引用创建共享指针会复制对象?
- Android :需要在 c++ NDK 中创建共享首选项对象并存储一些布尔值
- 使用多个标头使用 CMake 创建C++共享库
- 如何从静态c和c++库创建共享c库
- G 在创建共享对象时无法链接库
- 在创建共享对象时,不能使用针对未定义符号的重定位R_X86_64_PC32;使用-fPIC重新编译
- C++:从静态库创建共享对象
- 当我可以创建共享指针时,为什么我不能创建指向数组的唯一指针?
- 我可以在libleveldb.a中找到符号,但是当我创建共享库时,找不到相同的符号。
- 如何在HP-UX中使用GCC创建共享库
- 创建共享_ptr似乎会导致segfault
- 有没有办法使用 WINAPI 或 Embarcadero C++ Builder XE 创建共享目录/文件夹
- 使用openmp创建共享锁
- 如何使用 ld 创建共享库
- 如何在 OSX 上使用 glfw3 在 OpenGL 和 OpenCL 之间创建共享上下文
- 如何在linux x64上创建共享库对象,该对象内部使用C++异常,并且可以在旧平台上运行
- 是否可以使用 std::shared_ptr 创建共享对象池,并在没有自定义析构函数的情况下创建weak_ptr
- 如何在 C++ 中为安卓和 iOS 创建共享库