Can I start an application as another user without actually switching users? Is there a way to start an application as another user so that the started application would use the other user's preferences/history/resources et al?

For example: I've logged in as Alice and I'd like to start Firefox as Bob, so therefore Firefox would show Bob's browsing history instead of Alice's.

I tried

$ su Bob
$ open -a Firefox


But with no apparent effect; as a matter of a fact Activity monitor shows the Firefox process is being run by Alice—not Bob.

I understand I will need Bob's login credentials, but that's not a problem.
From the command line you have to find the Unix executable and run it using sudo like so:

$ sudo -u Bob /Applications/Firefox.app/Contents/MacOS/Firefox 


… or the same with su: (however this also needs you to set up a password for root - which I do not recommend)

$ su Bob
$ /Applications/Firefox.app/Contents/MacOS/Firefox


(…or the above in one line:)

$ su Bob -c /Applications/Firefox.app/Contents/MacOS/Firefox




In the past, the easiest way for PPC Macs was to use Pseudo, but it has been long discontinued. This is to drop the application icon on Pseudo's icon or window.