At some point in a person's life, if they are using a multi-user operating system, they will come into some sort of file permissions hell. Linux, Mac, and other Unix-like operating systems usually have "sudo", which allows you to momentarily tell the system, "To hell with this file permissions bunk, do what I say!" If I remember correctly, Windows 2000 and later had a similar kind of thing, "Run as Administrator", which when used properly, is very effective.
Since getting my most recent computer (Core 2 Quad 2.4 ghz, 4Gb ram, Geforce 8800 GTS 512mb, ...), and moving everything that has ever been on any computer I owned to this one beast (which is faster than all other machines I've ever owned, combined), I discovered a new file permission hell that I've never experienced before. I couldn't even list the contents of directories, never mind moving, deleting, or otherwise mangling them.
Ultimately the problem came down to ownership. Each computer sets up a UUID for the system, and each user (even if they have the same username) gets a different sub-domain id. Since I'd pushed no less than 5 different Windows installations' worth of data (2x Win2k, 3x WinXP) to this one box, spelunking around and re-organizing stuff usually resulted in various prompts of "are you sure you want to elevate your permissions to do this?" in Windows 7. Run as Administrator did not help. If only I had chown...
If you're a random internet surfer, please be aware that the following procedures may reset the modified date/time on your files. If you care about those dates/times, don't do this. Ready?
1. Right-click on whatever ancestral folder you want to alter ownership on (I did this on the root of my data drive), and hit Properties.
2. Go to the "Security" tab, and click the "Advanced" button down on the right.
3. Now the "Owner" tab, then the "Edit" button down on the bottom.
4. Pick yourself as the owner, and check the box that says "Replace owner on subcontainers and objects".
5. Now hit the Ok button, and confirm everything as necessary. In a few minutes, you will have solved your ownership dilemma.
6. Close those properties dialogs.
Now with that problem solved, what about the background Windows Indexing stuff? What? You disabled Windows Indexing Service in Windows 7 you say? Yes and no. There is a successor called "Windows Search", and that thing will touch any file you haven't explicitly disabled. Removing the Indexer was *supposed* to stop it, but it doesn't. And if you remove Windows Search, you can't even search through file names. If you want full-text indexing, by all means, keep it. Me? I find "instant" file searching terribly unnecessary (never mind basically broken with most of these systems). Also, the files I want to full-text search are only a few megs, and I touch them repeatedly with 'ack' (it's like grep, only with all of the good options already selected... it's only issue is that it's written in perl :P ).
1. Go to the root of you drive again, right-click on any (relatively small) folder, select Properties.
2. Hit the "Advanced" button. Notice that "Allow files in this folder to have contents indexed in addtion to file properties"? Toggle it, just to make a change.
3. Hit ok twice.
4. It should pop up with a dialog that asks if you want to apply it to that folder, or all subfolders and files too. Say Ok to that too.
5. You may need to give it administrator privileges, and you may need to "Ignore All" for permissions issues.
6. When it gets done, select every folder in the root of your drive, right-click, Properties.
7. Advanced button again, then make sure that the "Allow files in this folder..." checkbox is unchecked.
8. Hit Ok twice, tell it to apply it to everything, confirm for admin privileges as necessary, and ignore anything that you don't have permission to do.
At this point, most of my friends will probably follow up with, "Josiah, you're still using Windows?" Easily 95% of my time at a computer is spent in my editor PyPE or a browser (99% of my browser time is in Chrome). My editor works better in Windows than on Linux (it is atrocious on OS X), and Chrome on Windows is faster than any browser anywhere else*. Sure, I develop for Linux, but that's what a VM is for (VirtualBox FTW). Throw in NATTed internet, Samba over a second host-only connection, and configuring git to ignore any 'chmod a+x' equivalent changes, and I get the best of both worlds: my primary tools work amazing, and my dev environment can run exactly what our servers run without altering my personal workflow.
* I had a former coworker who benchmarked browsers one time and found that Chrome in Windows XP inside a VirtualBox VM was faster than any browser on the host OS X Core2 Duo laptop, or on the faster Core2 Quad Linux desktop.
I also do weekly snapshots of my dev environment so if a stray system update hoses everything, I spend about 15 minutes troubleshooting, and if that fails, I quick backup my home directory, hit the "go back to a previous snapshot" button, and restore the home directory. What about Windows 7 choking you say? Not an issue. I reboot every 2 months to pick up 2 months worth of Windows patches, even with a standby/wakeup cycle twice a day. I did that for a year and a half on Windows XP too.
For those using other systems effectively, I'm very happy for you. For me, Windows Host + Linux VM is the right answer. I hope you can understand :)
The ravings of a sane person.
Sometimes filled with information.
- Windows file permission and indexing service hell...