Difference between creating a folder in /Users vs. /Users/yourname is that in Users you do not have rights to write (or create folder), while you can write in your home directory (/Users/yourname).
The problem to create subdirectories in /tmp is the same - you do not have the rights.
Your best bet would be to use Environ$("TMPDIR") that returns a path to a temporary directory for the current user. There you can create your own folder.
To create a portable code, you could probably loop through "TMP", "TEMP", "TMPDIR" variables until you find one returning a value. This way you can find temp folder on Windows as well. On Linux you do not have an environment variable, but /tmp is writable for everyone.