2013-10-21 96 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'選項說明的手冊頁。

相關問題