PDA

View Full Version : سوال: نحوه دستکاری و تغییر Permission فایل



mosharecat
دوشنبه 25 دی 1391, 19:53 عصر
با سلام ، من چطوری میتونم مجوزدسترسی فایل رو جوری تغییر بدم که فایل پاک نشه.لطفا با کد راهنماییم کنین ... مرسی :قلب:

BORHAN TEC
دوشنبه 25 دی 1391, 20:18 عصر
انجام این کار به این سادگی ها که فکر می کنید نیست. البته برای این کار روش های مختلفی وجود دارد که ساده ترین آنها تغییر نام فایل به یکی از فایلهای تعریف شده به وسیله سیستم عامل است مثل com1 و ... .
اگر به صورت دستی سعی کنید فایلی به این نام بسازید خواهید دید که این کار شدنی نیست!!!
سیستم عامل ویندوز دارای یک راه در رو برای ساخت فایلی با این نام دارد که نحوه انجام این کار در این لینک آمده است:
http://barnamenevis.org/showthread.php?186220

lord_viper
سه شنبه 26 دی 1391, 09:36 صبح
یه راهش استفاده از توابع AclApi, AccCtrl هست و تغییر پرمیشن فایل و پوشه ها برای یوزرها



procedure SetSecurityRights(cFile : string);

var
pDACL: PACL;
pEA: PEXPLICIT_ACCESS_A;
R: DWORD;
begin
pEA := AllocMem(SizeOf(EXPLICIT_ACCESS));
BuildExplicitAccessWithName(pEA, 'EVERYONE',
GENERIC_READ,GRANT_ACCESS, NO_INHERITANCE);
R := SetEntriesInAcl(1, pEA, nil, pDACL);
if R = ERROR_SUCCESS then
begin
if SetNamedSecurityInfo(pchar(cFile),
SE_FILE_OBJECT,DACL_SECURITY_INFORMATION, nil, nil, pDACL, nil) <>
ERROR_SUCCESS then
ShowMessage('SetNamedSecurityInfo failed: ' +
SysErrorMessage(GetLastError));
LocalFree(Cardinal(pDACL));
end
else ShowMessage('SetEntriesInAcl failed: ' + SysErrorMessage(R));
end;

این یه نمونه هست که میتونین برای استفاده خودتون تغییرش بدین