Spectre-7's totally right

The only thing I'd suggest different is for /home - If you want to block access totally, what he's saying is correct.
If however, you want to do something similar to what I do on my system it's better to set the permissions to:
chmod 711 /home
This sets the eXecute bit enable for everyone, which means they can cd /home/<username> to get to their directory, but not *read* /home to see every other user's directory.
(The eXecute bit is a bit weird; If you set it for a file, the OS will think it's an executable and try to run it (Even if it isn't! So be careful!!), but if you set it on a directory, it means you can go into that directory. A directory without the eXecute bit set won't let you 'cd' into it...)
<rant mode! can ignore

>
Descenterace:
re: Case sensitivity
Actually, I wasn't kidding - I really do think it is a BAD thing.
I personally don't know of a SINGLE reason why it is a good thing.
NOTE - I am not talking about multi-case long-filenames.
I personally like being able to call something "Cyker's Big File Of Crap.zip" - As someone who's been forced to use 8.3 filenames and (even worse) things like 4DOS to workaround 8.3 filenames, I will never let go of my long multi-case filenames now!!

HOWEVER - I do NOT want to be able to have 6 files called:
"Cyker's Big File Of Crap.zip"
"Cyker's Big File Of Crap.ZIP"
"Cyker's Big File Of Crap.Zip"
"Cyker's Big File of Crap.zip"
"Cyker's Big File of Crap.Zip"
"Cyker's Big File of Crap.ZIP"
and have the system recognise them as ALL BEING DIFFERENT. There is just *NO* good usability reason for it!
If I wanted 6 big files of crap I'd put numbers on them!
(I suspect you will never know my pain until you have been forced to port a Windows IIS web-tree, with all student sub-folders, to a Linux Apache2 system and then support it... "No you prat! It has to be called index.html! NOT INDEX.HTML!!!! DIE!! DIE!!!!")
The ONLY reason we're stuck with this in Unix is because C (the language which Unix and Linux were originally coded in) is naturally case sensitive, and the original coders just didn't think of the problems this would cause.
As it stands we *can't* go back now, because it is such a fundamental filesystem attribute that changing it would break huge amounts of stuff...
This mean's we're stuck with it... I have accepted this, but it doesn't make it any less stupid.
re . files
The not beginning with a . thing in DOS/Windows is a throwback to the 8.3 filename system Windows/DOS is based on:
Unlike Unix, ALL files have a root 8-character FILENAME, and a 3-character EXTENSION - The Extension is used to define the type of file at a glance (Unlike, say on Unix and Amiga where they use a 'magic cookie'-type system and have to open every single file to see what type of file it is; This is more secure, but a lot slower)
This is why filenames shouldn't begin with a . in DOS/Windows - From the OS point of view, it means the file has *no* filename, only an extension!! In DOS, this would be Bad.
The use of .htaccess things in Apache is very Linux/Unix-specific, and not cross-platform-friendly.
The ONLY reason Apache uses .htaccess is because files that start with a dot are considered HIDDEN files. This is not defined by the filesystem in any way, but is just a Unix convention that anything pulling a directory list will hide things that start with a . by default.
However, on DOS/Windows this is *completely* unnecessary - DOS/Windows has a *specific* filesystem bit-flag to say whether a file is hidden or not, and doesn't need silly workarounds like the starting-with-a-dot thing.
This is moot anyway; IIRC you can tell Apache to use htaccess instead of .htaccess as it's config files, and then just make sure it has its hidden flag set

re spaces in names:
Allowing spaces in filenames... mmmm... In Windows it's handled badly, but in Linux it correctly allows you to "" or \ them, and bash's tab to autocomplete helps a LOT (I love bash. bash rules my linux box.

) , so I can live with it...
But I'm leaning more towards your opinion, having been forced to use both sh and the Windows Recovery Console (Pure Evil) in my time...
re Linux security:
Your gung-ho attitude to Linux security is exactly what I was warning about 'tho.
I mean, heck, I could point out that disabling the network connection on my Win98 box would make it just as secure!
It all boils down to Knowing how to do things, and the only way to get that is by Learning.
There is *no* quick and easy path to secure any OS. Well, at least if you want it to be connected to a network and/or actually usable!
Heck, you can even not bother up upgrade the system (My recently retired 486 had been running Slackware 8.0 for the past 2-ish years!) and still be pretty safe as long as you are Careful. But this applies to all OS (I'm proud of my Windows machine; Has Win98 as it's primary boot, has no anti-virus/anti-spyware crap, yet has never been hacked

)
The biggest ace Linux has in terms of security is that it was built on Unix, which was a multi-user OS from the ground-up.
This means that you *can* run as a user and still be able to do almost everything you need, whereas Windows is a total PITA for a lot of things unless you run as Administrator all the time, which gets you pwned.
...
Right, did I scare everyone away again?

(I'm not a zealot! No, really!

)