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.

Srikanth
  • 605

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
  • "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