Originally Posted by Simon Bridge
/usr/bin/ps and /usr/ucb/ps are the same in that they are wrappers to call the platform specific ps (see /usr/bin/sparcv9/ps for example). /usr/ucb/ps should be the BSD ps /usr/sbin/ps should be the SVR4 ps. You can probably check this by examining their properties.
You can invoke either one on UlrtraSPARC platforms (at least for the Solaris 8 and 9 that I have used them on). It is dependent on the path setting for your login session (if not including full path for "ls" command) - the default Solaris path uses /usr/bin, and omits /usr/ucb since that is a holdover from the "deprecated" SunOS 4 and earlier based on BSD unix prior to Sun's changeover to a unix based on AT&T's SvR4, which they then "marketed" as Solaris 2 (think they retro-named SunOS 4.x "Solaris 1" ;-). Since that name change, which went on up to 2.6, they dropped the "major" number, and designated only by the 'minor' number: 7, 8, 9, 10 - annoying to see Solaris "2.7", "2.9" by those oblivious to that change in nomenclature ;-).
More importantly, /usr/ucb/ps with "e" (and some other options, "xe"), can reveal all environment variables' settings for a process, and is supposed to be "turned off" by recent Solaris patches for 8 and 9 (10 is "unaffected") per this alert: http://sunsolve.sun.com/search/docum...=1-26-102215-1
) as a security measure. Some env variable settings might include passwords, database connect strings, etc depending on approach used for that Id and the process it may be running.