7

I am logging into a solaris server, switching to bash, then switching to another user "sruser" and switching to bash.

/home/batch/sruser/ is the home directory of the user "sruser".

The issue is ps is not giving any output when run in the home directory -

# pwd
 /home/batch/sruser/
# ps
# cd dir1
 /home/batch/sruser/dir1
# ps 
   PID TTY      TIME CMD
 17867 pts/1789 0:00 bash
 17165 pts/1789 0:00 ksh
 20435 pts/1789 0:00 ps
#

Don't know what could be the issue. Don't even know where to start looking for whatever could be the issue.

Gilles 'SO- stop being evil'
  • 807,993
  • 194
  • 1,674
  • 2,175
Srikanth
  • 605
  • 1
  • 7
  • 17

1 Answers1

10

$PATH has .(cwd) and there is a file ps with executable permissions in the home directory.

# ls -lrt *ps*
-rwxrw-r--   1 sruser  batch          0 Jun 2 2010 ps
# type ps
ps is hashed (./ps)
# which ps
./ps

Hence the command was not giving any output.

Srikanth
  • 605
  • 1
  • 7
  • 17
  • "ps" has no executable permission bits set in your ls output. It should then be ignored by the shell while exploring your PATH. – jlliagre Feb 23 '11 at 04:46
  • @jlliagre thanks for correcting me. i copied the wrong snippet. it does have a executable permission. – Srikanth Feb 23 '11 at 16:54
  • 5
    In any case, having . in your PATH as root is a poor practice but having it before the standard /bin, /usr/bin, sbin directories is quite suicidal. – jlliagre Feb 23 '11 at 20:26
  • 4
    Note that the more traditional way to include the current directory in `$PATH` is with the empty string. `PATH=/bin:` has the current directory last and `PATH=:/bin:/usr/bin` has it first. Incidentally, that latter one is the default `$PATH` (!) on GNU/Linux systems (for `execvp`, `env`...) when `PATH` is unset. – Stéphane Chazelas Jun 04 '14 at 22:22