2013-10-21 82 views
-1

我试图使用NetShareAdd()Windows API函数在Linux框中远程创建共享文件夹。我有一个使用samba共享的文件夹,我可以在那里远程创建目录;但是当我尝试在这样的机器上创建网络共享时,我总是得到ACCESS_DENIED。以编程方式在非Windows计算机上创建共享文件夹

你知道这是否可能?如果是这样,你是否对如何做这项工作有一些想法?

这是它的一小测试:

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(); 
} 
+2

在Linux机器上创建新的Samba共享通常需要编辑配置文件并重新启动Samba服务。现在要完全诚实地说,我不知道你想要做什么是可能的甚至是推荐的,但是我真的怀疑它是可能的或者推荐的。 –

回答

1

你需要有磁盘操作员权限(SeDiskOperatorPrivilege)和Samba配置为允许创建共享。

请参阅smb.conf(5)'add share command'选项说明的手册页。

相关问题