Re: Run 4GL Program without Database Permissions?
Posted in 1996
You don't say what your platform is, but... Programs run by root do not use LD_LIBRARY_PATH to search for shared libraries. They only search in /usr/lib. This is for security reasons; otherwise, an unsuspecting superuser could be fooled into using a custom C library which did all sorts of funny things with the super-user privileges. It is also a royal pain in the posterior. The OnLine servers have to create special symbolic links in /usr/lib/ pointing to the actual shared libraries they use. I4GL doesn't do this for you -- most programs are not run by the super-user. You need to create symbolic links in /usr/lib pointing to the I4GL shared libraries: cd $INFORMIXDIR/lib/tools for lib in *.so do ln -s $INFORMIXDIR/lib/tools/$lib /usr/lib/$lib done Don't forget to redo the links when you upgrade your version of I4GL! Yours, Jonathan Leffler (johnl@informix.com) #include <disclaimer.h> PS: All this is true, but whether it answers your question or not depends on whether the "s"-Bit you refer to is the SUID bit and the programs are created SUID root. If not, then you have some other problem. But I'm mildly optimistic that I've read between the lines correctly. }From: spitz@GANS2X.ana.med.uni-muenchen.de (Richard Spitz) }Date: 3 Sep 1996 14:02:05 GMT }X-Informix-List-Id: <news.27684> } }Dear Informixers, } }please help me with the following problem: } }In our department, we have, among others, two groups of applications with }their own databases behind them: } } 1) Management of the operating room schedules } 2) Management of the pain therapy department } }So far, both have been used by completely distinct groups of users who have }nothing to do with each other, especially not with each other's databases. }There are about 25 users defined for database (1) and about 15 for (2). } }Now I need to write a program so that a user of the OR scheduling program }can automatically notify the pain dept. of a patient undergoing }postoperative pain therapy. This means that a user out of group (1) must }be able to invoke a 4GL program with write access to database (2). } }What I must avoid is having to grant these users any privileges for data- }base (2). This is rather awkward to handle in Online 5.0x and a lot of }work to keep up to date, since there are no "roles". } }When I experimented with the "s"-Bit, I got the error message: }dynamic linker: postop.4ge: can't find lib4gl.1 }Killed } }However, LD_LIBRARY_PATH is set correctly, and other 4GL programs without }the "s"-Bit set can be run without problems. What's wrong? } }Any suggestions about how my problem could be solved? } }Regards, Richard }-- }+----------------------------+-------------------------------------------+ }| Dr. Richard Spitz | INTERNET: spitz@ana.med.uni-muenchen.de | }| EDV-Gruppe Anaesthesie | Tel : +49-89-7095-3413 | }| Klinikum Grosshadern | FAX : +49-89-7095-8886 | }| 81366 Munich, Germany | | }+----------------------------+-------------------------------------------+