What's the most appropriate directory where to place files shared between users?

Don't use

  • /usr is for sharable read-only data. Data here should only change for administrative reasons (e.g. the installation of new packages.)
  • /opt is generally for programs that are self-contained or need to be isolated from the rest of the system for some reason (low and medium interaction honeypot programs, for example).
  • /var is for "files whose content is expected to continually change during normal operation of the system---such as logs, spool files, and temporary e-mail files." I like to think of it like this: if your data wouldn't look right summarized in a list, it generally doesn't belong in /var (though, there are exceptions to this.)

Use

  • /home is for user home directories. Some see this directory as being an area for group files as well. The FHS actually notes that, "on large systems (especially when the /home directories are shared amongst many hosts using NFS) it is useful to subdivide user home directories. Subdivision may be accomplished by using subdirectories such as /home/staff, /home/guests, /home/students, etc."
  • /srv is an acceptable and often-preferred location for group files. I generally use this directory for group-shared files for the reason mentioned in Chris Down's answer; I see group file sharing as being a service that the server provides.

See the hier(7) man page (man hier) for more information of the purpose of each directory described by the FHS.


In my opinion, the right place is /srv/movies-enthusiast. A "service" does not have to be a daemon or program, it just has to be a service that the system provides (such as being able to get your movies there). Here's a quote from the FHS:

/srv contains site-specific data which is served by this system.

I definitely think your usage falls under that definition, and provides a service.


The Filesystem Hierarchy Standard (FHS) specifies a layout for "Unix distribution developers, package developers, and system implementors" to adhere to in order not to make a mess of your namespace.

As it is your namespace, you should choose any name you feel is suitable. If you find /groups/movies-enthusiast makes sense, you should put it there. If you like short path names because they are easier to type, /g/movies-enthusiast (or perhaps /g/m-e) would be suitable.

Because the paths you choose are not defined in the FHS, the distribution or third-party packages must not touch them. As such, you should read the FHS to know what paths may be used by compliant software (the table of contents will tell you most of what you need to know).

For example, I personally use /av for where I store my audio-visual content, /src for source code and /data for undefined data (such as virtual machine images, cd images, chroots, saved packages, etc).