Bad permissions on $INFORMIXDIR/tmp after installing CSDK
Posted in 2023
Scot Jenkins reported that installing the CSDK as user informix after a root server install left $INFORMIXDIR/tmp at mode 750, so oninit refused to start until chmod 0770. Art Kagel reported it to IBM's product manager. Carlton Doe explained that a non-root install is a private install and both products should be installed as root for multi-user use. Order of installs no longer matters in v14.
Auto-generated by Claude from the posts below — may be imperfect; read the full thread.
Topics: Installation, Setup & Upgrades, Platform-Specific Issues
I recently upgraded my developer copy of Informix 14.10.FC10 and
the matching CSDK. OS is Linux x86_64.
Something in the CSDK install process munges the permissions on
$INFORMIXDIR/tmp causing the server not to start. This problem
has existed for a while, at least from Informix 12.10 and maybe
versions prior. I've generally just fixed it and moved on but,
it's bugged me for the last time so I though I would report it.
Here's my install process:
First, as root, install informix server using ./ids_install.
I install into a new empty directory.
Verify server starts OK then shut it down.
Next, as user 'informix' install CSDK using ./installclientsdk.
All is good to this point.
Now the problem: when trying to start informix it says:
informix$ oninit -v
directory /opt/ibm/informix/ids14.10.FC10DE/tmp is too secure
(has mode 750, needs 770)
FIX:
informix$ cd $INFORMIXDIR
informix$ ls -ld tmpdrwxr-x--- 2 informix informix 4096 Mar 18 05:26 tmp
informix$ chmod 0770 tmp
informix$ ls -ld tmpdrwxrwx--- 2 informix informix 4096 Mar 18 05:26 tmp
Now informix will start.
Can someone please forward this to the developers or point me
to where this should be reported?
Thanks,
scot
Scot: Done. Reported to the IBM Product Manager. Art ------------------------------ Art S. Kagel, President and Principal Consultant ASK Database Management Corp. www.askdbmgt.com ------------------------------
Is there a reason you're not installing the CSDK as root? The problem stems for the fact that when the engine is installed as root, directories are created and permissions assigned designed for multi-user access. When the CSDK is installed using a different ID, this is referred to as a Private Install and is intended for use only by that UID. The same holds true for the engine, you can install the engine so only one UID has access to it. With a follow-on non-root/Private Install, an attempt is made to change the directory permissions without full O/S (aka "privileged") permissions which conflicts with the earlier install resulting in the run-time failure. If the engine and CSDK are installed as root, there isn't an issue. What may have happened is that FC10 caught that security hole in the installer and fixed it. There are several security updates in the release. ------------------------------ Carlton Doe ------------------------------
Thanks Art!
Scot: You are welcome. That's what the IIUG is here for. IBM is working on a fix for this, but Carlton has a point. If you installed the engine as root you probably should have installed the CSDK as root as well. Also, while the old "Rule of TEN" is no longer mandatory, it is still a good idea to install tools (4GL, ISQL, & CSDK) before installing the engine. Optional, but a good idea. Art ------------------------------ Art S. Kagel, President and Principal Consultant ASK Database Management Corp. www.askdbmgt.com ------------------------------
Thanks for the reply Carlton. I can't remember when CSDK was split off as a separate install but the 12.10 docs [1] stated: "The standard way to install client products is as the superuser informix with administrative privileges." FWIW, the 14.10 docs [2] state the same thing. I guess I interpreted that as: install IDS/engine as root, and the CSDK as the 'informix' user. That is how I have been performing installs ever since. Other than the permissions issue on $INFORMIXDIR/tmp, everything else seems to be working fine. When installing the CSDK, I am installing it in $INFORMIXDIR, the same place the IDS/engine is installed. I'm not a heavy user of Informix or the CSDK, but generally upgrade my developer copy as new releases come out to have as a reference system. I guess I should be installing both as the root user then? scot [1] https://www.ibm.com/docs/en/informix-servers/12.10?topic=sdk-installation-owner [2] https://www.ibm.com/docs/en/informix-servers/14.10?topic=sdk-installation-owner
Well you've asked a question for which I can give my favorite answer . . . . . . . "it depends." :) If this is installed on a "personal" machine that is not intended for multi-user use, you can install with your UID, usually into a directory of your choosing then you are the only person who can access and use the installation. This applies to engine and CSDK. I'm going to try and attach a screen shot for this. If you intend to have multi-user use, then both products need to be installed as root. ------------------------------ Carlton Doe ------------------------------
I always though the engine should be installed, then the CSDK. I guess I have been doing it wrong. Live and learn.
The CSDK was split off of the engine with V.14. There is a separate download for each along with separate installations. In the dark ages, it did matter which order you installed Informix products. There were two prevailing approaches TEN and NET which stood for tools (4GL/ISQL), engine then network connectivity (CSDK) OR network, engine then tools. In v.14 and possibly earlier, development fixed teh conflicting library dependencies so now it doesn't matter which is installed first or last. My personal installation choice is ENT (assuming you use tools) since the engine install creates the most subdirectories and the permissions are set properly (see my other response) but you can choose your own process. ------------------------------ Carlton Doe ------------------------------
Thanks for all your replies Carlton. This really clears things up. I wasn't aware some features were not available if the install was not performed as root. Also the tips on TEN and NET/ENT were useful and enlightening. scot