Ubuntu – How to make the public folder not appear in the home folder of new accounts

configurationhome-directoryusersxdg

When I create a new user, how do I tell Ubuntu not to create a Public sub-folder?

Best Answer

Preventing the creation of content folders

As you may have noticed, Ubuntu has a few "special" folders for certain types of content.

Special directories

These will appear in new user accounts, and auto-recreate (in certain situations) for existing users. However, this behavior can be configured.

For new users

Open /etc/xdg/user-dirs.defaults in your preferred text editor, with administrator privileges. You will see something close to this:

XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"

This is a system description of the default content folders to create for new users. If you replace any directory here with the home folder, new users will not have that folder created on first login.

For example, to prevent new users from getting a Public folder:

XDG_PUBLICSHARE_DIR="$HOME"

For existing users

Use the same process as above, but edit the .config/user-dirs.dirs in the user's home folder instead. This method does not require administrative privileges, and will prevent content directories from being recreated after user deletion.

Technical reading

  1. The XDG User Directories specification
  2. "How can I change the default location of content directories in my home folder?"