home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_2486 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  2.3 KB  |  44 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import win32security
  5. import win32file
  6. import win32api
  7. import ntsecuritycon
  8. import win32con
  9. import os
  10. from win32security import ACL_REVISION_DS, CONTAINER_INHERIT_ACE, OBJECT_INHERIT_ACE, PROTECTED_DACL_SECURITY_INFORMATION, DACL_SECURITY_INFORMATION, SACL_SECURITY_INFORMATION, OWNER_SECURITY_INFORMATION, GROUP_SECURITY_INFORMATION, SE_FILE_OBJECT
  11. new_privs = ((win32security.LookupPrivilegeValue('', ntsecuritycon.SE_SECURITY_NAME), win32con.SE_PRIVILEGE_ENABLED), (win32security.LookupPrivilegeValue('', ntsecuritycon.SE_RESTORE_NAME), win32con.SE_PRIVILEGE_ENABLED))
  12. ph = win32api.GetCurrentProcess()
  13. th = win32security.OpenProcessToken(ph, win32security.TOKEN_ALL_ACCESS | win32con.TOKEN_ADJUST_PRIVILEGES)
  14. modified_privs = win32security.AdjustTokenPrivileges(th, 0, new_privs)
  15. my_sid = win32security.GetTokenInformation(th, ntsecuritycon.TokenUser)[0]
  16. pwr_sid = win32security.LookupAccountName('', 'Power Users')[0]
  17. admin_sid = win32security.LookupAccountName('', 'Administrators')[0]
  18. everyone_sid = win32security.LookupAccountName('', 'EveryOne')[0]
  19. temp_dir = win32api.GetTempPath()
  20. dir_name = win32api.GetTempFileName(temp_dir, 'sfa')[0]
  21. os.remove(dir_name)
  22. os.mkdir(dir_name)
  23. dir_dacl = win32security.ACL()
  24. dir_dacl.AddAccessAllowedAceEx(ACL_REVISION_DS, CONTAINER_INHERIT_ACE | OBJECT_INHERIT_ACE, win32con.GENERIC_READ, everyone_sid)
  25. dir_dacl.AddAccessAllowedAceEx(ACL_REVISION_DS, CONTAINER_INHERIT_ACE | OBJECT_INHERIT_ACE, win32con.GENERIC_ALL, my_sid)
  26. win32security.SetNamedSecurityInfo(dir_name, SE_FILE_OBJECT, OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION | PROTECTED_DACL_SECURITY_INFORMATION, pwr_sid, pwr_sid, dir_dacl, None)
  27. fname = win32api.GetTempFileName(dir_name, 'sfa')[0]
  28. print fname
  29. file_sd = win32security.GetNamedSecurityInfo(fname, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION | SACL_SECURITY_INFORMATION)
  30. file_dacl = file_sd.GetSecurityDescriptorDacl()
  31. file_sacl = file_sd.GetSecurityDescriptorSacl()
  32. if file_dacl is None:
  33.     file_dacl = win32security.ACL()
  34.  
  35. if file_sacl is None:
  36.     file_sacl = win32security.ACL()
  37.  
  38. file_dacl.AddAccessDeniedAce(file_dacl.GetAclRevision(), win32con.DELETE, admin_sid)
  39. file_dacl.AddAccessDeniedAce(file_dacl.GetAclRevision(), win32con.DELETE, my_sid)
  40. file_dacl.AddAccessAllowedAce(file_dacl.GetAclRevision(), win32con.GENERIC_ALL, pwr_sid)
  41. file_sacl.AddAuditAccessAce(file_dacl.GetAclRevision(), win32con.GENERIC_ALL, my_sid, True, True)
  42. win32security.SetNamedSecurityInfo(fname, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION | SACL_SECURITY_INFORMATION, None, None, file_dacl, file_sacl)
  43. win32security.AdjustTokenPrivileges(th, 0, modified_privs)
  44.