क्या विंडोज में कोई एपीआई लिनक्स के chown जैसा है?विंडोज़ में फ़ाइल मालिक बदलें
5
A
उत्तर
3
यहाँ से लिया: http://www.perlmonks.org/?node_id=70562
// #includes omitted for the sake of sanity
HANDLE token;
char *filename = "somefile.txt";
char *newuser = "someuser";
DWORD len;
PSECURITY_DESCRIPTOR security = NULL;
PSID sidPtr = NULL;
int retValue = 1;
// Get the privileges you need
if (OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &token)) {
SetPrivilege(token, "SeTakeOwnershipPrivilege", 1);
SetPrivilege(token, "SeSecurityPrivilege", 1);
SetPrivilege(token, "SeBackupPrivilege", 1);
SetPrivilege(token, "SeRestorePrivilege", 1);
} else retValue = 0;
// Create the security descriptor
if (retValue) {
GetFileSecurity(filename, OWNER_SECURITY_INFORMATION, security, 0, &len);
security = (PSECURITY_DESCRIPTOR)malloc(len);
if (!InitializeSecurityDescriptor(security, SECURITY_DESCRIPTOR_REVISION))
retValue = 0;
}
// Get the sid for the username
if (retValue) {
char domainbuf[4096];
DWORD sidSize = 0;
DWORD bufSize = 4096;
SID_NAME_USE sidUse;
LookupAccountName(NULL, newuser, sidPtr, &sidSize, domainbuf, &bufSize, &sidUse);
sid = (PSID)malloc(sidSize);
if (!LookupAccountName(NULL, string, (PSID)sid, &sidSize, domainbuf, &bufSize, &sidUse))
retValue = 0;
}
}
// Set the sid to be the new owner
if (retValue && !SetSecurityDescriptorOwner(security, sidPtr, 0))
retValue = 0;
// Save the security descriptor
if (retValue)
retValue = SetFileSecurity(filename, OWNER_SECURITY_INFORMATION, security);
if (security) free(security);
if (sid) free(sid);
return retValue;
`
+3
पवित्र नरक, सब कुछ एक सरल 'चोटी' कॉल को बदलने के लिए! –
+0
क्या आपने अस्पष्टता के लिए फ़ंक्शन रिटर्न प्रकार, नाम और पैरामीटर को छोड़ दिया था? –
1
आप मिल सकती है cacls or icacls commands उपयोगी ... वे वास्तव में उपयोग करने के लिए हालांकि
आप में थोड़ा और अधिक जानकारी दे सकते हैं सीधा नहीं कर रहे हैं आप क्या करने की कोशिश कर रहे हैं?
संबंधित मुद्दे
- 1. फ़ाइल का मालिक आइकन
- 2. विंडोज़ फॉर्म में सामग्री बदलें
- 3. विंडोज़ में मालिक और स्वामित्व वाली विंडो के बारे में
- 4. PostgreSql डेटाबेस के मालिक को कैसे बदलें?
- 5. यूनिक्स में फ़ाइल के मालिक को खोजें
- 6. देखें आउटलेट फ़ाइल के मालिक
- 7. विंडोज़: साझा मेमोरी का आकार बदलें
- 8. अपने हैंडल का उपयोग कर विंडो मालिक को कैसे बदलें
- 9. एकाधिक "फ़ाइल के मालिक" के साथ एक xib फ़ाइल
- 10. आईट्यून्स में बाइनरी फ़ाइल बदलें
- 11. जगह में पाइथन फ़ाइल बदलें
- 12. डेटाबेस मालिक सिड मास्टर डेटाबेस में दर्ज डेटाबेस मालिक सिड
- 13. विंडोज़ सेवा - कॉन्फ़िगरेशन फ़ाइल
- 14. विंडोज़ उन्नत फ़ाइल मिलान
- 15. इंटरसेप्ट विंडोज़ खुली फ़ाइल
- 16. विंडोज़ को कैसे बदलें। आधुनिक बीप ध्वनि
- 17. विंडोज़
- 18. विंडोज़ में लिनक्स बनाम फ़ाइल की अनुमति
- 19. विंडोज़ में hid.lib फ़ाइल कहां है?
- 20. विंडोज़: उपयोग में फ़ाइल को ओवरराइट करें
- 21. विंडोज़ में ब्लॉक के लिए जर्नल बदलें (एनटीएफएस)
- 22. विंडोज़ पर एसवीएन में सहायता भाषा कैसे बदलें?
- 23. विंडोज़ टास्क मैनेजर में जावा प्रक्रिया विवरण बदलें
- 24. फ़ाइल में पढ़ें - सामग्री बदलें - उसी फ़ाइल में लिखें
- 25. फ़ाइल एक्सटेंशन बदलें
- 26. फ़ाइल निर्माण दिनांक बदलें
- 27. नेंट: फ़ाइल अनुमति बदलें
- 28. विंडोज़ में डेस्कटॉप पर फ़ाइल शॉर्टकट (* .lnk फ़ाइल) कैसे बनाएं?
- 29. यदि फ़ाइल पहले से ही विंडोज़
- 30. विंडोज़ पर os.stat "nul" फ़ाइल
विंडोज सुरक्षा मॉडल वास्तव में फ़ाइल स्वामित्व के आसपास आधारित नहीं है जिस तरह यूनिक्स फ़ाइल सिस्टम हैं, इसलिए यह वास्तव में एक उपकरण नहीं है जो अक्सर आवश्यक होता है। –