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

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import os
  5. import sys
  6. import win32security
  7. import ntsecuritycon
  8. name = sys.argv[0]
  9. if not os.path.exists(name):
  10.     print name, 'does not exist!'
  11.     sys.exit()
  12.  
  13. print 'On file ', name, '\n'
  14. print 'OWNER'
  15. sd = win32security.GetFileSecurity(name, win32security.OWNER_SECURITY_INFORMATION)
  16. sid = sd.GetSecurityDescriptorOwner()
  17. print '  ', win32security.LookupAccountSid(None, sid)
  18. print 'GROUP'
  19. sd = win32security.GetFileSecurity(name, win32security.GROUP_SECURITY_INFORMATION)
  20. sid = sd.GetSecurityDescriptorGroup()
  21. print '  ', win32security.LookupAccountSid(None, sid)
  22. sd = win32security.GetFileSecurity(name, win32security.DACL_SECURITY_INFORMATION)
  23. dacl = sd.GetSecurityDescriptorDacl()
  24. if dacl == None:
  25.     print 'No Discretionary ACL'
  26. else:
  27.     for ace_no in range(0, dacl.GetAceCount()):
  28.         ace = dacl.GetAce(ace_no)
  29.         print 'ACE', ace_no
  30.         print '  -Type'
  31.         for i in ('ACCESS_ALLOWED_ACE_TYPE', 'ACCESS_DENIED_ACE_TYPE', 'SYSTEM_AUDIT_ACE_TYPE', 'SYSTEM_ALARM_ACE_TYPE'):
  32.             if getattr(ntsecuritycon, i) == ace[0][0]:
  33.                 print '    ', i
  34.                 continue
  35.         
  36.         print '  -Flags', hex(ace[0][1])
  37.         for i in ('OBJECT_INHERIT_ACE', 'CONTAINER_INHERIT_ACE', 'NO_PROPAGATE_INHERIT_ACE', 'INHERIT_ONLY_ACE', 'SUCCESSFUL_ACCESS_ACE_FLAG', 'FAILED_ACCESS_ACE_FLAG'):
  38.             if getattr(ntsecuritycon, i) & ace[0][1] == getattr(ntsecuritycon, i):
  39.                 print '    ', i
  40.                 continue
  41.         
  42.         print '  -mask', hex(ace[1])
  43.         permissions_file = ('DELETE', 'READ_CONTROL', 'WRITE_DAC', 'WRITE_OWNER', 'SYNCHRONIZE', 'FILE_GENERIC_READ', 'FILE_GENERIC_WRITE', 'FILE_GENERIC_EXECUTE', 'FILE_DELETE_CHILD')
  44.         permissions_dir = ('DELETE', 'READ_CONTROL', 'WRITE_DAC', 'WRITE_OWNER', 'SYNCHRONIZE', 'FILE_ADD_SUBDIRECTORY', 'FILE_ADD_FILE', 'FILE_DELETE_CHILD', 'FILE_LIST_DIRECTORY', 'FILE_TRAVERSE', 'FILE_READ_ATTRIBUTES', 'FILE_WRITE_ATTRIBUTES', 'FILE_READ_EA', 'FILE_WRITE_EA')
  45.         permissions_dir_inherit = ('DELETE', 'READ_CONTROL', 'WRITE_DAC', 'WRITE_OWNER', 'SYNCHRONIZE', 'GENERIC_READ', 'GENERIC_WRITE', 'GENERIC_EXECUTE', 'GENERIC_ALL')
  46.         if os.path.isfile(name):
  47.             permissions = permissions_file
  48.         else:
  49.             permissions = permissions_dir
  50.             if ace[0][1] & ntsecuritycon.OBJECT_INHERIT_ACE == ntsecuritycon.OBJECT_INHERIT_ACE and ace[0][1] & ntsecuritycon.INHERIT_ONLY_ACE == ntsecuritycon.INHERIT_ONLY_ACE:
  51.                 permissions = permissions_dir_inherit
  52.             
  53.         calc_mask = 0
  54.         for i in permissions:
  55.             if getattr(ntsecuritycon, i) & ace[1] == getattr(ntsecuritycon, i):
  56.                 calc_mask = calc_mask | getattr(ntsecuritycon, i)
  57.                 print '    ', i
  58.                 continue
  59.         
  60.         print '  ', 'Calculated Check Mask=', hex(calc_mask)
  61.         print '  -SID\n    ', win32security.LookupAccountSid(None, ace[2])
  62.     
  63.