I have an external hard disk which has 1 partition, formatted in NTFS. I use this drive on multiple computers with a different logins on different machines, Windows XP and Windows 7. All files are plain old files, not OS encrypted or compressed.

Every now and then Windows 7 does not let me access some files, citing permission problems. I can circumvent this per case by taking ownership and setting appropriate permissions. This, however, is tedious. Is there a simple way to tell Windows to not enforce or store any permissions on any file/directory on a partition?

link|improve this question

67% accept rate
The answer is a solution but it doesn't answer your question. – wizard Sep 26 '10 at 18:14
feedback

1 Answer

up vote 10 down vote accepted

Your external drive is formatted with the NTFS file system, which supports access restrictions.

Unfortunately, while some users and security groups are built-in to Windows with predefined Security IDs which are the same on all machines (such as Everyone), other users and groups have SIDs derived from the machine they're defined on.

To normalize the situation you should:

  1. While logged-in as Administrator, right-click the drive's root directory and select Properties.
  2. Click the Security tab, then the Advanced button.
  3. In the Advanced Security Settings dialog for the drive, click the Owner tab, then the Edit button.
  4. Click the Administrators group, check "Replace owner on subcontainers and objects", and click OK. If asked about replacing existing permissions with ones giving you Full Control, click Yes.
  5. Back in the Security tab on the original Properties sheet again, click the Edit button, and in the Security dialog click Remove for all entries in the "Group or user names" except the well-known ones of System, Administrators, Users and Authenticated Users.
  6. Click Add, and in the "Select Users, Computer or Groups" dialog Under "Enter the object names to select", type Everyone and click OK. You should see that Everyone has been added to the list.
  7. Click Everyone, check Full Control, then click on Apply.
  8. Click Advanced again to go back to the Advanced Security Settings dialog box. Check "Replace permission entries on all child objects" and click OK.
  9. Click OK.

Be careful in the future not to allocate separate access permissions to sub-folders of the drive (leaving all permissions as inherited). If this happens again, repeat the step for "Replace permission entries on all child objects".

Be mindful of the fact that under Windows 7 the Guest account is not part of the Everyone group. If you need it, you'll have to add Guest as above for the Everyone group.

link|improve this answer
The above is the correct solution and really the only easy way to deal with external NTFS drives that may used by multiple user accounts or on different machines. If there are files you want private you can always use something like TrueCrypt to make a folder and it's contents private. – jtreser May 14 '10 at 11:04
+1 - "Everyone Full Control" or "Administrators Full Control / Users Modify" is the easiest way around this. Beyond that, it's a matter of making sure something doesn't decide to mess with the ACLs. – afrazier May 14 '10 at 13:53
Does it specifically have to be 'Administrator' that takes ownership of the external drive's root folder or is a user with admin rights good enough? Because I can't seem to get this to work and I don't have the person with the Administrator password on hand. At least I can still access the drive just fine on my Linux laptop... (Whoever decided that putting ACLs on external hard drives was a good idea should be shot) – kahen Aug 27 '11 at 20:22
UAC... my sworn enemy. 2 reboots later and a takeown /f e:\ /r /d y later, and everything is in order again. – kahen Aug 27 '11 at 21:22
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.