Ubuntu – How to change the default location of content directories (eg Pictures, Templates, Music) in the home folder

configurationdirectoryxdg

I have multiple users on my home desktop. I am content with most of the default user directories, however I would like to make one change.

I would like to setup a common directory for Music (ie /home/common/Music/) that is writable to all users and Nautilus/Dolphin/whatever recognizes as the user's Music directory.

I know that it would involve changing the xdg user directory setup, but everything I see points that it is relative to the user's $HOME. Is there a way I can specify an absolute path?

Best Answer

Yes to do what you need you simply need to change the xdg configuration for each existing user like so:

~/.config/user-dirs.dirs

XDG_DESKTOP_DIR="$HOME/Desktop"
...
XDG_MUSIC_DIR="/home/common/Music"
XDG_VIDEOS_DIR="$HOME/Movies"

And to make this something available to all users created simply edit this:

/etc/xdg/user-dirs.defaults

DESKTOP=Desktop
...
MUSIC=../common/Music
VIDEOS=Videos

To modify the permissions, this bit is tricky because you need to make sure that all files created in these directories remain editable by everyone. I found this interesting guide on the subject:

http://www.centos.org/docs/2/rhl-rg-en-7.2/s1-users-groups-private-groups.html

Which suggests doing the following to make the permissions sticky as well as adding the users all to a common group:

chown nobody:users /home/common
chmod 2775 /home/common
usermod -a -G users user1

You may want to change the umask setting to allow all files created to be modifiable by the anyone in the users group in that directory, edit /etc/profile and go to the bottom and change umask 022 to umask 002 This is considered secure since all users have their own primary user and really only effects shared directories like this one you want to make.

Let us know if it works well enough.