```
$ chef-shell
loading configuration: none (standalone session)
Session type: standalone
Loading....done.

This is the chef-shell.
 Chef Version: 11.12.4
 http://www.opscode.com/chef
 http://docs.opscode.com/

run `help' for help, `exit' or ^D to quit.

Ohai2u chris@!
chef > hadoop_tmp_dir = 'file://mnt/dev0/tmp/hadoop-${user}'
 => "file://mnt/dev0/tmp/hadoop-${user}"
chef > File.dirname(hadoop_tmp_dir.gsub('file://', ''))
 => "mnt/dev0/tmp"
```

Hadoop will attempt to create the directories, itself. You don't **need** to create every user's directory. Remember, the default for `hadoop.tmp.dir` is `file:///tmp/hadoop-${user}` but you can start Hadoop services, or use the `hadoop` shell script (as a client) without first creating this directory. This is because anyone can write to the parent of `hadoop.tmp.dir`, or `/tmp` on their machine. Hadoop is able to create `hadoop.tmp.dir` as that user, on demand. This basically gives the same functionality. Try it. It should work for your use case, without the need to create directories for each user.