File/directory security is the only way to do this. File sharing uses both share security and file/directory security to allow access.
To allow this, you'll need:
1. User to have read/write access
2. Group with the Apache/WWW user in it to have read/execute.
3. Everyone else gets no access.
So, let's assume the Apache daemon runs as the user www and that user is a member of the group also called www. You can find this out by:
1. Start Apache.
2. ps -ef | grep httpd (note the 1st column should have the daemon user in it)
3. Then issue: id <username in step 2>
4. The first group listed should be the primary group for that user.
You would do the following for each Sites folder:
1. chown -R <username>:www /Users/<username>/Sites
2. find /Users/<username>/Sites -type -f -exec chmod 640 {} \;
3. find /Users/<username>/Sites -type -d -exec chmod 750 {} \;
That will:
1. Change the owner and group of the Sites folder to <username> and www group respectively.
2. Change the permissions on all files so that <username> has R/W, the www group has R/O, and nobody else has access.
3. Change the permissions on all directories so that <username> has R/W, the www group has R/O, and nobody else has access.