/* REXX */ /**********************************************************************/ /* This exec will customize the Version Root ZFS for z/OS v1r13 */ /**********************************************************************/ parse arg $root . say "CUSTZFS3: Starting" if length($root) = 0 then do say "ERROR: You must supply the path where the root hfs is mounted" say "Example: EXEC 'D10.PETHFSN.JOBS(CUSTZFSn)' '/service'" say "CUSTZFS: All done." exit 20 end /*********************************************************************/ /* Turn on syscalls */ /*********************************************************************/ call syscalls 'ON' say 'Customizing ZFS mounted at '$root say "Creating directories for the Version ZFS" call makedir $root'/usr/lpp/cicsts' 755 address syscall say "Change /usr/lpp/wbem uid and gid to CFZADM and CIMGRP respectively" 'chown '$root'/usr/lpp/wbem 8044 9099' say "Change /usr/lpp/cpo uid and gid to CPOSRV and CPOGRP respectively" 'chown '$root'/usr/lpp/cpo 8041 5500' say "Change group owner to TTY for mesg, talk and write" 'getgrnam TTY ttygrp.' 'chown '$root'/bin/mesg -1 'ttygrp.gr_gid 'chown '$root'/bin/talk -1 'ttygrp.gr_gid 'chown '$root'/bin/write -1 'ttygrp.gr_gid say "Turn on setgid bit for mesg, talk and write" 'chmod '$root'/bin/mesg 2755 ' /* g+s */ 'chmod '$root'/bin/talk 2755 ' /* g+s */ 'chmod '$root'/bin/write 2755 ' /* g+s */ say "Creating symbolic links for the Version ZFS" 'symlink /dce '$root'/usr/dce' 'symlink /mmfacts '$root'/usr/mmfacts' 'symlink /CB390 '$root'/usr/lpp/CB390' 'symlink /cicsts/cicsts13 '$root'/usr/lpp/cicsts/cicsts13' 'symlink /db2 '$root'/usr/lpp/db2' 'symlink /awm110 '$root'/usr/lpp/awm' 'symlink $SYSNAME/fwdata '$root'/usr/lpp/fw/fwdata' 'symlink $SYSNAME/fwkern '$root'/usr/lpp/fw/fwkern' 'symlink $SYSNAME/home '$root'/usr/lpp/fw/home' 'symlink $SYSNAME/IMiner '$root'/usr/lpp/IMiner' 'symlink /java '$root'/usr/lpp/java' 'symlink /java/java13 '$root'/usr/lpp/java13' 'symlink /PolicyDirector '$root'/usr/lpp/PolicyDirector' 'symlink $SYSNAME/lotus '$root'/usr/lpp/lotus' 'symlink /NetCommerce '$root'/usr/lpp/NetCommerce' 'symlink /netdata '$root'/usr/lpp/netdata' 'symlink $SYSNAME/nstation '$root'/usr/lpp/nstation' 'symlink $SYSNAME/Tivoli2 '$root'/usr/lpp/Tivoli2' 'symlink $SYSNAME/Tivoli2db '$root'/usr/lpp/Tivoli2db' 'symlink $SYSNAME/Tivoli2ir '$root'/usr/lpp/Tivoli2ir' 'symlink $SYSNAME/Tivoli2bk '$root'/usr/lpp/Tivoli2bk' 'symlink /Tivoli2cd '$root'/usr/lpp/Tivoli2cd' 'symlink /TME '$root'/usr/lpp/Tivoli/lcf/preload/bin/os390/TME' 'symlink /server_root/dmq '$root'/usr/lpp/internet/server_root/dmq' 'symlink /ctg '$root'/usr/lpp/ctg' 'symlink /vaj35 '$root'/usr/lpp/vaj35' 'symlink /WebSphere35 '$root'/usr/lpp/WebSphere35' 'symlink $SYSNAME/was40 '$root'/usr/lpp/WebSphere40' say "Creating symbolic links for ims" 'symlink /imsjava '$root'/usr/lpp/imsjava' 'symlink /ims '$root'/usr/lpp/ims' 'symlink /imsjava/ims /ims' 'symlink /imsico '$root'/usr/lpp/imsico' say "Creating symbolic links for java hpj" 'symlink /hpjjava '$root'/usr/lpp/hpj' 'symlink /hpj/hpj /hpjjava' say "Creating symbolic links for wmqi" 'symlink /mqi210 '$root'/usr/lpp/wmqi' say "Creating symbolic links for eim" 'symlink /eim '$root'/usr/lpp/eim' say "Creating symbolic links for netview" 'symlink /netview '$root'/usr/lpp/netview' say "Creating symbolic links for wmqiprod" 'symlink /mqi210p '$root'/usr/lpp/wmqiprod' say "Creating symbolic links for local" 'symlink /local '$root'/usr/local' say "Creating symbolic links for wbimb" 'symlink /wbimb50/V5R0M1 '$root'/usr/lpp/wbimb' 'symlink /wbimb50p/V5R0M1 '$root'/usr/lpp/wbimbprod' say "Creating symbolic links for XML Toolkit" 'symlink /ixm '$root'/usr/lpp/ixm' say "Creating symbolic links for ITIM" 'symlink /itim '$root'/usr/lpp/itim' say "Creating symbolic links for Perl1" 'symlink /usr/lpp/perl '$root'/perl' say "Creating symbolic links for Perl2" 'symlink /usr/lpp/perl/bin/perl '$root'/usr/local/bin/perl' say "Creating symbolic links for Perl3" 'symlink /usr/lpp/perl/man/C/man1/hpeza200.book ', $root'/usr/man/C/man1/hpeza200.book' say "Creating symbolic links for Perl4" 'symlink /usr/lpp/perl/lib/5.8.7/os390-thread-multi/CORE/libperl.so ', $root'/usr/lib/libperl.so' say "Creating symbolic links for ssre" /* 'symlink /ssre/V1R1 '$root'/usr/lpp/ssre/V1R1' */ say 'stat and removing dir(1), symlink(5), file(3), if there' say 'lstat '$root'/usr/lpp/ssre/V1R1' st. 'lstat '$root'/usr/lpp/ssre/V1R1' st. dpath = $root'/usr/lpp/ssre/V1R1' call processname dpath say st.st_type 'd's_isdir 's's_issym 'r's_isreg 'RC='errno' RSN='errnojr say 'symlink /ssre/V1R1 '$root'/usr/lpp/ssre/V1R1' 'symlink /ssre/V1R1 '$root'/usr/lpp/ssre/V1R1' say ' RC='errno ' RSN='errnojr say "Creating symbolic links for zma" say 'Remove anything under '$root'/usr/lpp/zma, if a directory' 'lstat '$root'/usr/lpp/zma' st. If st.st_type=s_isdir then do /* Only remove if a directory */ dpath = $root'/usr/lpp/zma' call rdir dpath say 'Remove: RC='errno' RSN='errnojr end else say $root'/usr/lpp/zma is not a directory: RC='errno' RSN='errnojr say 'stat and removing dir(1), symlink(5), file(3), if there' say 'lstat '$root'/usr/lpp/zma' st. 'lstat '$root'/usr/lpp/zma' st. dpath = $root'/usr/lpp/zma' call processname dpath say st.st_type 'd's_isdir 's's_issym 'r's_isreg 'RC='errno' RSN='errnojr say 'symlink /zma '$root'/usr/lpp/zma' 'symlink /zma '$root'/usr/lpp/zma' say ' RC='errno ' RSN='errnojr say "Creating symbolic links for WebSphere OEM" say 'Remove anything under '$root'/usr/lpp/zWebSphereOEM, if directory' 'lstat '$root'/usr/lpp/zWebSphereOEM' st. If st.st_type=s_isdir then do /* Only remove if a directory */ dpath = $root'/usr/lpp/zWebSphereOEM' call rdir dpath say 'Remove: RC='errno' RSN='errnojr end else say $root'/usr/lpp/zWebSphereOEM not directory: RC='errno' RSN='errnojr say 'stat and removing dir(1), symlink(5), file(3), if there' say 'lstat '$root'/usr/lpp/zWebSphereOEM' st. 'lstat '$root'/usr/lpp/zWebSphereOEM' st. dpath = $root'/usr/lpp/zWebSphereOEM' call processname dpath say st.st_type 'd's_isdir 's's_issym 'r's_isreg 'RC='errno' RSN='errnojr say 'symlink /zWebSphereOEM '$root'/usr/lpp/zWebSphereOEM' 'symlink /zWebSphereOEM '$root'/usr/lpp/zWebSphereOEM' say ' RC='errno ' RSN='errnojr say "Creating symbolic links for zosmf" say 'Remove anything under '$root'/usr/lpp/zosmf, if a directory' 'lstat '$root'/usr/lpp/zosmf' st. If st.st_type=s_isdir then do /* Only remove if a directory */ dpath = $root'/usr/lpp/zosmf' call rdir dpath say 'Remove: RC='errno' RSN='errnojr end else say $root'/usr/lpp/zosmf is not a directory: RC='errno' RSN='errnojr say 'stat and removing dir(1), symlink(5), file(3), if there' say 'lstat '$root'/usr/lpp/zosmf' st. 'lstat '$root'/usr/lpp/zosmf' st. dpath = $root'/usr/lpp/zosmf' call processname dpath say st.st_type 'd's_isdir 's's_issym 'r's_isreg 'RC='errno' RSN='errnojr say 'symlink /zosmf '$root'/usr/lpp/zosmf' 'symlink /zosmf '$root'/usr/lpp/zosmf' say ' RC='errno ' RSN='errnojr say "Creating symbolic links for aqt" say 'Remove anything under '$root'/usr/lpp/aqt, if a directory' 'lstat '$root'/usr/lpp/aqt' st. If st.st_type=s_isdir then do /* Only remove if a directory */ dpath = $root'/usr/lpp/aqt' call rdir dpath say 'Remove: RC='errno' RSN='errnojr end else say $root'/usr/lpp/aqt is not a directory: RC='errno' RSN='errnojr say 'stat and removing dir(1), symlink(5), file(3), if there' say 'lstat '$root'/usr/lpp/aqt' st. 'lstat '$root'/usr/lpp/aqt' st. dpath = $root'/usr/lpp/aqt' call processname dpath say st.st_type 'd's_isdir 's's_issym 'r's_isreg 'RC='errno' RSN='errnojr say 'symlink /aqt '$root'/usr/lpp/aqt' 'symlink /aqt '$root'/usr/lpp/aqt' say 'symlink: RC='errno ' RSN='errnojr say "Creating symbolic links for cqm (Query Manager)" say 'Remove anything under '$root'/usr/lpp/cqm, if a directory' 'lstat '$root'/usr/lpp/cqm' st. If st.st_type=s_isdir then do /* Only remove if a directory */ dpath = $root'/usr/lpp/cqm' call rdir dpath say 'Remove: RC='errno' RSN='errnojr end else say $root'/usr/lpp/cqm is not a directory: RC='errno' RSN='errnojr say 'stat and removing dir(1), symlink(5), file(3), if there' say 'lstat '$root'/usr/lpp/cqm' st. 'lstat '$root'/usr/lpp/cqm' st. dpath = $root'/usr/lpp/cqm' call processname dpath say st.st_type 'd's_isdir 's's_issym 'r's_isreg 'RC='errno' RSN='errnojr say 'symlink /cqm '$root'/usr/lpp/cqm' 'symlink /cqm '$root'/usr/lpp/cqm' say ' RC='errno ' RSN='errnojr say "Waiting for the terminfo database to be created" notdone=1 do while notdone 'wait wstat.' if retval=-1 then notdone=0 end say "Creating 9 symbolic links for V1R13 migration" linklist.1 = '/usr/mail' '../var/mail' linklist.2 = '/usr/lib/cron' '../../var/cron' linklist.3 = '/usr/spool' '../var/spool' linklist.4 = '/usr/lib/uucp/Systems' '../../../var/uucp/Systems' linklist.5 = '/usr/lib/uucp/Devices' '../../../var/uucp/Devices' linklist.6 = '/usr/lib/uucp/Dialers' '../../../var/uucp/Dialers' linklist.7 = '/usr/lib/uucp/Dialcodes' '../../../var/uucp/Dialcodes' linklist.8 = '/usr/lib/uucp/Permissions' '../../../var/uucp/Permissions' linklist.9 = '/usr/lib/uucp/config' '../../../var/uucp/config' linklist.0 = 9 do a=1 to linklist.0 parse var linklist.a $linkname $linkloc $linkname = $root || $linkname say 'Rename '$linkname' if there' say 'rename '$linkname' '$linkname'_renamed' 'rename '$linkname' '$linkname'_renamed' say 'rename: RC='errno ' RSN='errnojr say 'Creating symbolic links '$linkname' -> '$linkloc 'symlink '$linkloc' '$linkname say 'symlink: RC='errno ' RSN='errnojr end say "Creating symbolic links for uucp, cron and dgw" sym='/dgw_pet/Counters/counter.cnt' file=$root||'/usr/lpp/internet/server_root/Counters/counter.cnt' 'symlink (sym) (file)' say "Change ownership for Firewall files" 'getgrnam FWGRP fwgrpid.' 'getpwnam FWADM fwuid.' 'chown '$root'/usr/lpp/fw/bin/admin_test 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/cfgfilt 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwadapter 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwaudio 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwcfgcmds 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwcfgnat 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwdaemon 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwdns 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwdsesskey 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwfilter 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwinsert 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwjulian 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwlog 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwlogtxt 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwmigrate 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwnat 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwstack 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwtag 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwtech.obj 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwtech.zip 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwtrace 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/fwtunnl 'fwuid.pw_uid fwgrpid.gr_gid 'chown '$root'/usr/lpp/fw/bin/hand_key 'fwuid.pw_uid fwgrpid.gr_gid mask='00000004'x /* apf control bits */ value='00000004'x /* set apf control bits on */ say "Turn on setuid bit for setuid programs" 'chmod '$root'/bin/fomtlinc 4755' /* u+s */ 'chmod '$root'/bin/fomtlout 4755' /* u+s */ 'chmod '$root'/bin/login 4755' /* u+s */ 'chmod '$root'/bin/crontab 4755' /* u+s */ 'chmod '$root'/bin/rmail 4755' /* u+s */ 'chmod '$root'/bin/newgrp 4755' /* u+s */ 'chmod '$root'/bin/at 4755' /* u+s */ 'chmod '$root'/usr/sbin/ocsconfig 4755' /* u+s */ 'chmod '$root'/usr/sbin/tsmail 4755' /* u+s */ 'chmod '$root'/usr/lpp/fw/bin/fwdaemon 4755' /* u+s */ 'chmod '$root'/usr/lpp/fw/bin/fwmigrate 4755' /* u+s */ 'chmod '$root'/usr/lpp/fw/bin/fwstack 4755' /* u+s */ say "Before BPXISETS job, save Build etc and var and make dirs" address SYSCALL 'rename '$root'/etc '$root'/etcbuild' address SYSCALL 'rename '$root'/var '$root'/varbuild' call makedir $root'/etc' 777 call makedir $root'/var' 777 say "Running BPXISETS job to convert /etc to a symlink" address tso "oput 'D10.PETHFSN.JOBS(BPXISET2)' '/tmp/sets.sh'" 'chmod /tmp/sets.sh 777' address tso "oshell /tmp/sets.sh "$root say "Running sendmail job" address tso "oput 'D10.PETHFSN.JOBS(SENDMAIL)' '/tmp/sendmail.sh'" 'chmod /tmp/sendmail.sh 777' address tso "oshell /tmp/sendmail.sh "$root say "Running dgw symlink job" address tso "oput 'D10.PETHFSN.JOBS(DGWSH)' '/tmp/dgw.sh'" 'chmod /tmp/dgw.sh 777' address tso "oshell /tmp/dgw.sh "$root say "Running webspher job" address tso "oput 'D10.PETHFSN.JOBS(WEBSPHER)' '/tmp/webspher.sh'" 'chmod /tmp/webspher.sh 777' address tso "oshell /tmp/webspher.sh "$root say "CUSTZFSn: All done" exit /*********************************************************************/ /* Procedure makedir */ /* - Create a new dir */ /* - If the directory exists, call chmod to make sure the */ /* permission bits are correct */ /*********************************************************************/ makedir: procedure parse arg dir_name mode_bit . address SYSCALL 'mkdir' dir_name mode_bit If errno = EEXIST then do address SYSCALL 'chmod' dir_name mode_bit say 'chmod' dir_name 'completed with' mode_bit end else if errno = 0 then do address SYSCALL 'chmod' dir_name mode_bit say 'chmod' dir_name 'completed with' mode_bit end else say 'Directory' dir_name 'not created, error codes' errno errnojr return /*********************************************************************/ /* Procedure rdir */ /*********************************************************************/ rdir: procedure expose types calltp call syscalls on parse arg path d.0=0 address syscall 'readdir (path) d.' do i=1 to d.0 dpath=path'/'d.i address syscall 'lstat (dpath)' st. if st.st_type=s_isdir & d.i<>'.' & d.i<>'..' then call rdir dpath if d.i<>'.' & d.i<>'..' then call processname dpath end return /*********************************************************************/ /* Procedure processname */ /*********************************************************************/ processname: select when st.st_type=s_isdir then rmdir (dpath) when st.st_type=s_ischr then say 'Chr ' dpath when st.st_type=s_isfifo then say 'FIFO' dpath when st.st_type=s_isreg then unlink (dpath) when st.st_type=s_issym then unlink (dpath) otherwise say '????' dpath end return