The setup was the basic multi-user scenario described in the dev environment admin training slides (module 8). Each user has his own data/tmp/deploy directory, but the conf directory is shared between all users and not writable.
This produces a a FATAL log message:
11:37:06,717 FATAL [EmbeddedServletOptions] The scratchDir you specified:
/private/tmp/jboss-4.0.2/server/test/work/jboss.web/localhost/jmx-console is unusable.
This also causes exceptions when the server shuts down.
The jboss.web directory should probably go under the data or tmp directory so that it can exist on a per-user basis. Another option is to allow variable substitution in the server.xml file so that the scratchdir can be set based on the $[user.name} property.
See the admin module 8, slides 5-16 for the complete configuration if my description isn't clear.