
#
# Directory security
#

cd /opt/IDS.12.10.FC5
. ./ol_informix1210.ksh
onmode -ky # stop instance

ls -ld .
drwxr-xr-x. 29 informix informix 4096 Apr 21 02:54 .

onstat -

# Permissions checks
chmod o+w .
onmode -ky 
onstat - 
oninit - 

# Fix permissions
chmod o-w .
onmode -ky 
onstat - 
oninit 
onsecurity /opt/IDS.12.10.FC5 

#
# onsecurity
#

# Check another folder with onsecurity
rm -rf /tmp/x
mkdir /tmp/x
chmod o+w /tmp/x
onsecurity /tmp/x 

#
# Chunk file permissions
#
onmode -ky
onstat -d
ls -ld /opt/IDS.12.10.FC5/storage/datadbs
chmod o+r /opt/IDS.12.10.FC5/storage/datadbs
ls -ld /opt/IDS.12.10.FC5/storage/datadbs
-rw-rw----. 1 informix informix 19688062976 Apr 21 03:02 /opt/IDS.12.10.FC5/storage/datadbs
oninit
onstat -m
chmod o-r /opt/IDS.12.10.FC5/storage/datadbs
chown root:root /opt/IDS.12.10.FC5/storage/datadbs
oninit
onstat -m
chown informix:informix /opt/IDS.12.10.FC5/storage/datadbs

#
# DB_LIBRARY_PATH
#

# compile
cd ~informix
gcc -I$INFORMIXDIR/incl -I $INFORMIXDIR/incl/esql -c -fPIC -DMI_SERVBUILD -g bigger_int.c
gcc -shared -fPIC -o /home/informix/bigger_int.so bigger_int.o

# load

tail -f /opt/IDS.12.10.FC5/ol_informix1210.log

dbaccess sysmaster
drop database justdave;
create database justdave;

CREATE FUNCTION bigger_int (arg1 integer, arg2 integer) RETURNING integer
EXTERNAL NAME '/home/informix/bigger_int.so(bigger_int)'
LANGUAGE C;

select bigger_int(1,2) from systables where tabid=1;

DROP FUNCTION bigger_int;

onmode -ky
vi $INFORMIXDIR/etc/$ONCONFIG
Enable DB_LIBRARY_PATH 

rm -rf /tmp/y
mkdir /tmp/y

cp/home/informix/bigger_int.so /tmp/y
oninit

dbaccess justdave
CREATE FUNCTION bigger_int (arg1 integer, arg2 integer) RETURNING integer
EXTERNAL NAME '/tmp/y/bigger_int.so(bigger_int)'
LANGUAGE C;

select bigger_int(1,2) from systables where tabid=1;

