First help me understand what we're talking about...
On my pre-existing site nobaloney.net site (RHL 7.3), my public_html directory looks like this:
drwxr-xr-x 14 nobalone nobalone 4096 Mar 2 22:03 public_html
And my understanding is it always should be this way.
Phil, what do you mean by "it was created by 'apache' but is owned by 'admin'"? I don't see any argument to ls that will tell you who created the directory.
John, what do you mean by "The group of the public_html is supposed to be set to apache"? Is this a recent change? I don't see it mentioned in the version history, but I haven't clicked on the prior versions.
For the most security, presuming proftpd runs as user ftp and httpd runs as apache, you should probably use:
drwxr-xr-x 14 nobalone apache 4096 Mar 2 22:03 public_html
The important thing we all need to remember is that read a directory we must have read permission, but to actually cd into the directory we must also have execute permission.
So there's no way around the 755 permissions.
As far as I understand it, if we had only static html code we could probably get away with 750, though i could be wrong, and I haven't done any testing.
750 would certainly block other users logging into the box from reading anyone else's files, but it would probably stop certain cgi and/or php files from properly executing.
Jeff