Restricting users to their own home directories / not letting users view other users files...?

Mel fbsd.questions at rachie.is-a-geek.net
Wed Feb 11 11:12:32 PST 2009


On Wednesday 11 February 2009 07:22:17 Keith Palmer wrote:
> OK, I'm sure this question has been asked a million times, but I havn't
> been able to find a straight answer that actually solves the problem, so
> here goes.
>
> We have a FreeBSD server with multiple users. I would rather each user
> *not* be able to view other users' files via an SSH or SFTP session. i.e.
> if I'm logged in as "keith" I should *not* get a list of files when I do
> "ls /home/shannon"
>
> I realize I can fix this by setting the permissions on the "/home/shannon"
> directory to 700. *However* then Apache (running as user "www") won't
> display the documents in "/home/shannon/public_html" from
> "http://ip-address/~shannon/", instead returning a "403 Forbidden" error.
>
>
> Sooo... how can I set this up so that users can't view other user's files,
> but Apache still works?

Your problem might be how they change the files, if via FTP, but...

- Move the public_html dirs
- chgrp www, chmod 640.
- symlink in the home dir

http://httpd.apache.org/docs/2.2/mod/mod_userdir.html#userdir

Example:
mkdir /var/userweb
for USERDIR in /home/*; do
	if test -d ${USERDIR}/public_html; then
		destdir=/var/userweb/${USERDIR##/home/}
		mkdir ${destdir}
		mv ${USERDIR}/public_html ${destdir}/
		ln -s ${destdir}/public_html ${USERDIR}/public_html
		chgrp -R www ${destdir}/public_html
		chmod -R u+w,g-w,o= ${destdir}/public_html
	fi
done

In httpd.conf:
UserDir /var/userweb/*/public_html

That said, I don't really understand your 'ls' paranoia. If you don't care 
about ls, you can set user's umask to 0027 and rechmod all files to 640. Have 
users in their own group and have */public_html group www. /home/username 
then has to have 755 in order for apache to get to public_html.

-- 
Mel

Problem with today's modular software: they start with the modules
    and never get to the software part.


More information about the freebsd-questions mailing list