|
IDS Forum
Re: RE: RE: I have a puzzling situation
Posted By: Art Kagel Date: Wednesday, 7 November 2012, at 10:50 a.m.
In Response To: RE: RE: RE: I have a puzzling situation (John Adamski)
John:
I don't see a setuid() call for the user that fails! That is strange!
Art
Art S. Kagel
Advanced DataTools (www.advancedatatools.com)
Blog: http://informix-myview.blogspot.com/
Disclaimer: Please keep in mind that my own opinions are my own opinions
and do not reflect on my employer, Advanced DataTools, the IIUG, nor any
other organization with which I am associated either explicitly,
implicitly, or by inference. Neither do those opinions reflect those of
other individuals affiliated with any entity with which I am affiliated nor
those of the entities themselves.
On Wed, Nov 7, 2012 at 9:38 AM, John Adamski <adamski@graceland.edu> wrote:
> Jacques
>
> I got a chance this morning to run tusc for both the uses. If I did it
> correctly here is the output from running it on the two test users.
>
> onstat -g glo
>
> IBM Informix Dynamic Server Version 11.70.FC4 -- On-Line -- Up 27 days
> 00:55:54 -- 1076296 Kbytes
>
> MT global info:
> sessions threads vps lngspins
> 0 73 17 0
>
> sched calls thread switches yield 0 yield n yield forever
> total: 1407334795 132198003 1279812992 99794471 6475162
> per sec: 0 0 0 0 0
>
> Virtual processor summary:
> class vps usercpu syscpu total
> cpu 6 41932.54 248.43 42180.97
> aio 1 3.73 12.11 15.84
> lio 1 3.32 9.85 13.17
> pio 1 3.24 10.08 13.32
> adm 1 115.33 67.39 182.72
> soc 5 82.06 241.21 323.27
> msc 1 0.08 0.10 0.18
> fifo 1 3.24 9.87 13.11
> total 17 42143.54 599.04 42742.58
>
> Individual virtual processors:
> vp pid class usercpu syscpu total Thread Eff
> 1 3737 cpu 798.41 31.10 829.51 889.49 93%
> 2 3834 adm 115.33 67.39 182.72 0.00 0%
> 3 3835 lio 3.32 9.85 13.17 13.17 100%
> 4 3839 pio 3.24 10.08 13.32 13.32 100%
> 5 3845 aio 3.73 12.11 15.84 15.84 100%
> 6 3848 msc 0.08 0.10 0.18 0.24 74%
> 7 3860 fifo 3.24 9.87 13.11 13.11 100%
> 8 3889 cpu 1492.38 40.75 1533.13 1598.08 95%
> 9 3891 cpu 1039.38 36.84 1076.22 1104.90 97%
> 10 3893 cpu 14266.45 53.33 14319.78 14456.13 99%
> 11 3899 cpu 11374.88 40.81 11415.69 11620.67 98%
> 12 3902 cpu 12961.04 45.60 13006.64 13176.86 98%
> 13 3903 soc 18.50 52.39 70.89 NA NA
> 14 3904 soc 17.23 51.24 68.47 NA NA
> 15 3905 soc 17.17 51.03 68.20 NA NA
> 16 3906 soc 17.40 51.20 68.60 NA NA
> 17 3907 soc 11.76 35.35 47.11 NA NA
>
> tot 42143.54 599.04 42742.58
>
> tusc -f -o /var/adm/crash/jda_tmp/tusc.log 3834
>
> for ury the one that works I get this:
>
> setgid(140) .............................................. = 0
> setgroups(14, 0xc0000000414ad5f0) ........................ = 0
> setuid(771) .............................................. = 0
> umask(07) ................................................ = 07
> chdir("/home/carsids/ury") ............................... = 0
> execve("/bin/sh", 0xc000000047b213a0, 0xc000000049d91ec0) = 0 [32-bit]
> mmap(NULL, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS,
> -1, 0) = 0x7d7fa000
> open("/usr/lib/hpux32/dld.so", O_RDONLY, 0) .............. = 3
> read(3, "7fE L F 0102010101\0\0\0\0\0\0\0".., 1024) ...... = 1024
> mmap(NULL, 752624, PROT_READ|PROT_EXEC, MAP_SHARED|MAP_FILE|MAP_SHLIB, 3,
> 0) =
> 0xc0040000
> sysconf(_SC_PAGE_SIZE) ................................... = 4096
> mmap(NULL, 7384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_SHLIB,
> -1, 0) = 0x7d7f8000
> mmap(0x7d7f5000, 12120, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_FILE|MAP_SHLIB,
> 3, 786432) = 0x7d7f5000
> close(3) ................................................. = 0
> mmap(NULL, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS,
> -1, 0) = 0x7d7f2000
> sysconf(_SC_PAGE_SIZE) ................................... = 4096
> stat("/usr/lib/hpux32/dpd", 0x7ffff7f0) .................. = 0
> open("/usr/lib/hpux32/dpd", O_RDONLY, 0) ................. = 3
> fcntl(3, F_SETFD, 0) ..................................... = 0
> mmap(NULL, 16384, PROT_READ|PROT_WRITE|PROT_EXEC,
> MAP_PRIVATE|MAP_ANONYMOUS,
> -1, 0) = 0x7d7ec000
> getdents(3, 0x7d7ec028, 8192) ............................ = 80
> getdents(3, 0x7d7ec028, 8192) ............................ = 0
> close(3) ................................................. = 0
> getuid() ................................................. = 771 (771)
> getgid() ................................................. = 140 (140)
> open("/bin/sh", O_RDONLY, 0) ............................. = 3
> pread(3, "\0\0\002\0\0\0, \0\0\0\aH P \0\0".., 60, 436) .. = 60
> close(3) ................................................. = 0
> utssys(0x7fffec40, 60, 0) ................................ = 0
> procxsec(4, -1, 0x7fffec10, 40) .......................... = 0
> open("/usr/lib/hpux32/libc.so.1", O_RDONLY, 0) ........... = 3
> fstat(3, 0x7ffff730) ..................................... = 0
> read(3, "7fE L F 0102010101\0\0\0\0\0\0\0".., 52) ........ = 52
> pread(3, "7fE L F 0102010101\0\0\0\0\0\0\0".., 1024, 0) .. = 1024
> mmap(NULL, 2987424, PROT_READ|PROT_EXEC, MAP_SHARED|MAP_SHLIB, 3, 0) =
> 0xc0300000
> madvise(0xc0300000, 0x2d95a0, MADV_NORMAL) ............... = 0
> mmap(NULL, 47784, PROT_READ|PROT_WRITE,
> MAP_PRIVATE|MAP_ANONYMOUS|MAP_SHLIB,
> -1, 0) = 0x7d7e0000
> mmap(0x7d7d8000, 29796, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_SHLIB, 3,
> 3014656) = 0x7d7d8000
> close(3) ................................................. = 0
> mmap(NULL, 16384, PROT_READ|PROT_WRITE|PROT_EXEC,
> MAP_PRIVATE|MAP_ANONYMOUS,
> -1, 0) = 0x7d7d4000
> open("/usr/lib/hpux32/libdl.so.1", O_RDONLY, 0) .......... = 3
> fstat(3, 0x7ffff730) ..................................... = 0
> read(3, "7fE L F 0102010101\0\0\0\0\0\0\0".., 52) ........ = 52
> pread(3, "7fE L F 0102010101\0\0\0\0\0\0\0".., 1024, 0) .. = 1024
> mmap(NULL, 16080, PROT_READ|PROT_EXEC, MAP_SHARED|MAP_SHLIB, 3, 0) =
> 0xc0004000
> mmap(NULL, 224, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_SHLIB, 3, 65536) =
> 0x7d7fe000
> close(3) ................................................. = 0
> sigsetreturn(NULL, 0x6211988, 48640) ..................... = 0
> mmap(NULL, 3336, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> 0x7d7f4000
> sysconf(_SC_CPU_VERSION) ................................. = 768
> sigprocmask(SIG_SETMASK, 0x7ffff7e0, 0x7ffff800) ......... = 0
> brk(0x4001cbc0) .......................................... = 0
> brk(0x4001ebb0) .......................................... = 0
> brk(0x40020000) .......................................... = 0
> sigprocmask(SIG_SETMASK, 0x7ffff800, 0x7ffff7e0) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7fffdad0, 0x7fffdaf0) ......... = 0
> brk(0x40021000) .......................................... = 0
> sigprocmask(SIG_SETMASK, 0x7fffdaf0, 0x7fffdad0) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7fffdad0, 0x7fffdaf0) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7fffdaf0, 0x7fffdad0) ......... = 0
> open("/usr/lib/nls/loc/hpux32/locales.3/en_US.iso88591", O_RDONLY, 0) = 3
> fstat(3, 0x7fffcff0) ..................................... = 0
> pread(3, "7fE L F 0102010101\0\0\0\0\0\0\0".., 1024, 0) .. = 1024
> stat("/usr/lib/hpux32/dpd", 0x7fffc610) .................. = 0
> open("/usr/lib/hpux32/dpd/en_US.iso88591.bpd", O_RDONLY, 0) ERR#2 ENOENT
> mmap(NULL, 5952, PROT_READ|PROT_EXEC, MAP_SHARED|MAP_SHLIB, 3, 0) =
> 0xc0bfe000
> mmap(NULL, 14808, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_SHLIB, 3, 65536) =
> 0x7d7d0000
> close(3) ................................................. = 0
> stat("/usr/lib/nls/loc/hpux32/locales.3/en_US.iso88591", 0x7fffd5c0) = 0
> sigprocmask(SIG_SETMASK, 0x7fffdad0, 0x7fffdaf0) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7fffdaf0, 0x7fffdad0) ......... = 0
> open("/usr/lib/nls/loc/hpux32/locales.3/C", O_RDONLY, 0) . ERR#2 ENOENT
> sigprocmask(SIG_SETMASK, 0x7fffdad0, 0x7fffdaf0) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7fffda80, 0x7fffdaa0) ......... = 0
> brk(0x40022000) .......................................... = 0
> sigprocmask(SIG_SETMASK, 0x7fffdaa0, 0x7fffda80) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7fffda80, 0x7fffdaa0) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7fffdaa0, 0x7fffda80) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7fffdaf0, 0x7fffdad0) ......... = 0
> sysconf(_SC_OPEN_MAX) .................................... = 4096
> sigprocmask(SIG_SETMASK, 0x7ffff7c0, 0x7ffff7e0) ......... = 0
> brk(0x40026000) .......................................... = 0
> sigprocmask(SIG_SETMASK, 0x7ffff7e0, 0x7ffff7c0) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7ffff7c0, 0x7ffff7e0) ......... = 0
> brk(0x4002a000) .......................................... = 0
> sigprocmask(SIG_SETMASK, 0x7ffff7e0, 0x7ffff7c0) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7ffff7e0, 0x7ffff800) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7ffff800, 0x7ffff7e0) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7ffff7e0, 0x7ffff800) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7ffff800, 0x7ffff7e0) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7ffff7e0, 0x7ffff800) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7ffff800, 0x7ffff7e0) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7ffff7e0, 0x7ffff800) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7ffff790, 0x7ffff7b0) ......... = 0
> brk(0x4002c000) .......................................... = 0
> sigprocmask(SIG_SETMASK, 0x7ffff7b0, 0x7ffff790) ......... = 0
> sigprocmask(SIG_SETMASK, 0x7ffff800, 0x7ffff7e0) ......... = 0
> close(4096) .............................................. ERR#9 EBADF
> close(29) ................................................ ERR#9 EBADF
> close(28) ................................................ ERR#9 EBADF
> close(27) ................................................ ERR#9 EBADF
> close(26) ................................................ ERR#9 EBADF
> close(25) ................................................ ERR#9 EBADF
> close(24) ................................................ ERR#9 EBADF
> open("/dev/null", O_RDONLY, 05030) ....................... = 3
> close(3) ................................................. = 0
> getuid() ................................................. = 771 (771)
> getuid() ................................................. = 771 (771)
> getgid() ................................................. = 140 (140)
> getgid() ................................................. = 140 (140)
> access("/var/tmp", F_OK) ................................. = 0
>
> It goes on a lot more
>
> sury the one that fails I get this:
>
> setgid(140) .............................................. = 0
> setgroups(21, 0xc000000041eab510) ........................ ERR#22 EINVAL
> sigprocmask(SIG_BLOCK, 0x6000000000363790, NULL) ......... = 0
> alarm(0) ................................................. = 0
> sigaction(SIGALRM, 0x60000000003637e0, NULL) ............. = 0
> sigprocmask(SIG_UNBLOCK, 0x60000000003637c0, NULL) ....... = 0
> sigaction(SIGALRM, 0x6000000000363810, NULL) ............. = 0
> getpid() ................................................. = 2247 (3834)
> exit(131) ................................................ WIFEXITED(131)
> Received signal 18, SIGCLD, in pause(), [caught]
>
> Siginfo: child pid 2247, CLD_EXITED (status 131), si_errno: 0
> pause() .................................................. ERR#4 EINTR
> waitpid(-1, WIFEXITED(131), WNOHANG) ..................... = 2247
> sigprocmask(SIG_BLOCK, 0x6000000000363580, NULL) ......... = 0
> semop(55, 0x6000000000363590, 1) ......................... = 0
> sigprocmask(SIG_UNBLOCK, 0x6000000000363580, NULL) ....... = 0
> waitpid(-1, WIFEXITED(131), WNOHANG) ..................... = 0
> Received signal 14, SIGALRM, in pause(), [caught], no siginfo
> pause() .................................................. ERR#4 EINTR
> time(0xc000000040625c60) ................................. = 1352299862
>
> It looks like the setgroups() is different and not sure what that means or
> where it gets the values from.
>
> John
> -----Original Message-----
> From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of John
> Adamski
> Sent: Tuesday, November 06, 2012 2:49 PM
> To: ids@iiug.org
> Subject: RE: RE: RE: I have a puzzling situation [28715]
>
> Jacques
>
> It probably been 5-6 years since I last used tusc so will take me a little
> to
> clean out the cobwebs in my brain. But I do have a test/DR system I can use
> that usually only has me on it.
>
> I see there are a number of other replies so will go check them out. I
> hope to
> have time tomorrow to figure out tusc and try your suggestion.
>
> John
>
> -----Original Message-----
> From: ids-bounces@iiug.org [mailto:ids-bounces@iiug.org] On Behalf Of
> JACQUES
> RENAUT
> Sent: Monday, November 05, 2012 1:11 PM
> To: ids@iiug.org
> Subject: Re: RE: RE: I have a puzzling situation [28704]
>
> Original post:
>
> Jim,
>
> Here is the code (sql) using in my test procedure:
>
> drop procedure testsysfail;
>
> create procedure testsysfail()
> returning char(32);
>
> on exception in (-668)
>
> return "Failed, error 668";
> end exception;
>
> SYSTEM " /tmp/test.csh";
>
> return "succeded";
> end procedure;
>
> grant execute on testsysfail to public;
>
> It is based on the production procedure, I just kept the few lines I needed
> that I thought to get a good equivalent procedure. As you can see the
> SYSTEM
> line only has SYSTEM " /tmp/test.csh"
>
> And this is the content of the test.csh script:
>
> #!/bin/csh -f
> ##
> printenv | sort >& /tmp/test.log
>
> id -rg >>& /tmp/test.log
>
> id -ru >>& /tmp/test.log
>
> exit 0
>
> I reran the procedure as both users and get the same results one works one
> doesn't.
>
> I than changed the SYSTEM command to be like your suggestion below "
> /usr/bin/csh -f -v -x -c /tmp/test.sh >& /tmp/test.log ". I get the 668
> error
> on the user that normally works. I also changed the SYSTEM command to go to
> test2.log, still get the 668 error. Then I did a which csh and changed the
> SYSTEM command to use /bin.csh and same results.
>
> If I'm understanding your logic, running csh in the SYSTEM should have
> forced
> a sub-shel - well that doesn't seem to working. Which might imply one user
> is
> getting a sub-shell and the other not. But I can't find any setup that is
> different between the two users.
>
> john
>
> <stuff removed>
>
> Response:
>
> Here's an idea you might try. Assuming you have a test instance where you
> can
> control the activity, you could try using HP-UX tusc utility. You would
> want
> to tusc the adm vp (it's the vp that would be forking and exec'ing the
> system
> command for the sql system command). There's a follow fork option that you
> would want to use (along with others probably) so perhaps you could use the
> tusc output to see if you might spot differences in what each user session
> (the working vs non-working) was doing as the OS level or if there was some
> error in in some of the output that might narrow in on some problem. You'd
> have to run the tusc command as root, and again you'd want to do it on a
> system with limited access so the adm vp wouldn't be doing tons of stuff
> (so
> it's easier to tell the good output vs bad output). I'll go ahead and warn
> you
> the adm vp will generate a decent amount of stuff for signal handling and
> alarm/time output on it's own, but you should also be able to spot where it
> does it's fork and then exec of the shell for the system command and if you
> follow the fork, get output for what you system command is doing.
>
> Jacques Renaut
> IBM Informix Advanced Support
> APD Team.
>
>
>
> *******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
>
> *******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
>
> *******************************************************************************
> Forum Note: Use "Reply" to post a response in the discussion forum.
>
>
--14dae93407478f5a2b04cde9ac23
Messages In This Thread
IDS Forum is maintained by Administrator with WebBBS 5.12.
|
|