home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / dfs / install / postinstall < prev    next >
Text File  |  1998-08-19  |  4KB  |  145 lines

  1. #ident    "@(#)postinstall    1.2"
  2.  
  3. #
  4. # Initialize FAILURE to 1 (fatal error)
  5. #
  6. FAILURE=1
  7.  
  8. # Create dummy /etc/dfs/lid_and_priv file
  9. #if [ ! -f /etc/dfs/lid_and_priv ]
  10. #then
  11. #    echo "# specify access to be granted to NFS clients of this server" >> /etc/dfs/lid_and_priv
  12. #    echo "# domain    hostname    MAC_level    privilege_set" >> /etc/dfs/lid_and_priv
  13. #fi
  14. #installf $PKGINST /etc/dfs/lid_and_priv f 0644 root root 2 NULL NULL
  15.  
  16. # Create empty /etc/dfs/sharetab file
  17. if [ ! -f /etc/dfs/sharetab ]
  18. then
  19.     > /etc/dfs/sharetab
  20. fi
  21. installf $PKGINST /etc/dfs/sharetab v 0644 root root 2 NULL NULL
  22.  
  23. #
  24. #    change levels of some commands to SYS_PUBLIC so that OA&M may work for dfs
  25. #    (cannot use chlvl)
  26.  
  27. installf $PKGINST /usr/bin/tr f \? \? \? 1 NULL NULL
  28.  
  29. #
  30. #    add /sbin/init to the NET role so that
  31. #    network administrator can go init 3
  32. #
  33.  
  34. #adminrole -a init:/sbin/init:allprivs NET
  35.  
  36. #
  37. #    Add the dev and filesys privilege to the generic umount & mount
  38. #    and also mountall & umountall commands since they are not set in the TCB.
  39.  
  40. installf  $PKGINST /sbin/umount f \? \? \? 2 NULL allprivs
  41. installf  $PKGINST /sbin/mount f \? \? \? 1 NULL allprivs
  42. installf  $PKGINST /sbin/mountall f \? \? \? 2 NULL allprivs
  43. installf  $PKGINST /sbin/umountall f \? \? \? 2 NULL allprivs
  44.  
  45. #
  46. #    put /usr/bin/cp in NET role with privs .. so that OA&M works
  47. #
  48. #    cp is needed by nsu and dfs, so both postinstalls add it
  49. #    ignoring error.  The packages can then remain independent.
  50. #
  51. #adminrole -a cp:/usr/bin/cp:macwrite:dacwrite:macread:dacread NET 2>/dev/null 1>&1
  52. #adminrole -a mkdir:/usr/bin/mkdir:dacread:dacwrite:macread:macwrite:multidir:fsysrange:setflevel NET 2>/dev/null
  53. #
  54. #
  55. #    put /sbin/sh in NET role with privs .. so that OA&M works
  56. #
  57.  
  58. #adminrole -a sh:/sbin/sh:macwrite:dacwrite:macread:dacread:filesys:dev NET
  59.  
  60. #
  61. #    Add dfs commands to TFM database
  62. #
  63. #while read cmd
  64. #do
  65. #    base=`basename $cmd`
  66. #    privs=`
  67. #        egrep ":${cmd}$" /etc/security/tcb/privs |
  68. #        sed -n '/%inher,.*:/s/^.*%inher,\(.*\):.*/\1/p' |
  69. #        sed 's/,/:/gp'
  70. #        `
  71. #    if [ ! -f $cmd ]
  72. #    then
  73. #        echo "Warning: $cmd not found on the system.\c"
  74. #        echo "  Not adding to TFM."
  75. #        continue
  76. #    fi
  77. #
  78. #    if [ -z "$privs" ]
  79. #    then
  80. #        adminrole -a $base:$cmd NET
  81. #    else
  82. #        adminrole -a $base:$cmd:$privs NET
  83. #    fi
  84. #done <<!
  85. #/usr/sbin/dfshares
  86. #/usr/sbin/general
  87. #/usr/sbin/share
  88. #/usr/sbin/shareall
  89. #/usr/sbin/unshareall
  90. #/usr/sbin/lidload
  91. #/usr/sbin/fuser
  92. #/usr/bin/kill
  93. #!
  94.  
  95. # Workaround for putting unshare and dfmounts in NET role with privs 
  96. # /usr/sbin/unshare is a link to /usr/sbin/general and /usr/sbin/dfmounts
  97. # is a link to /usr/sbin/dfshares.
  98.  
  99. #/usr/bin/adminrole -a unshare:/usr/sbin/unshare:dacread:dacwrite:dev:macread:macwrite:driver:fsysrange:filesys        NET
  100. #/usr/bin/adminrole -a dfmounts:/usr/sbin/dfmounts:dacread:dacwrite:dev:macread:macwrite:driver:fsysrange    NET
  101.  
  102. #    and modify generic umount and mount (they already have new privs in TCB
  103.  
  104. #for role in SOP SSO
  105. #do
  106. #    adminrole -r mount -a mount:/sbin/mount:allprivs $role
  107. #    adminrole -r umount -a umount:/sbin/umount:allprivs $role
  108. #done
  109.  
  110. #adminrole -a mount:/sbin/mount:allprivs NET
  111. #adminrole -a umount:/sbin/umount:allprivs NET
  112. #adminrole -a umountall:/sbin/umountall:allprivs NET
  113. #adminrole -a mountall:/sbin/mountall:allprivs NET
  114.  
  115. # root must have the NET role ....
  116.  
  117. TEST=`adminuser root | grep "roles:" | (read a b; echo $b)`
  118. echo $TEST | grep NET > /dev/null
  119. if [ $? -ne 0 ]
  120. then
  121.     echo $TEST | grep none > /dev/null
  122.     if [ $? -ne 0 ]
  123.     then
  124.         TEST=$TEST,NET
  125.     else
  126.         TEST=NET
  127.     fi
  128.     adminuser -o $TEST root
  129. fi
  130.  
  131. ############# Begin UPGRADE AND OVERLAY #######################
  132. SCRIPTS=/usr/sbin/pkginst
  133. . ${SCRIPTS}/updebug
  134. [ "$UPDEBUG" = "YES" ] && set -x
  135.  
  136. if [ $PKGINSTALL_TYPE = UPGRADE ] || [ $PKGINSTALL_TYPE = OVERLAY ]
  137. then
  138.     ${SCRIPTS}/pkgmrgconf "$PKGINST" "$AUTOMERGE" "$NAME"
  139. fi
  140. ############# End UPGRADE AND OVERLAY #######################
  141.  
  142. installf -f $PKGINST || exit FAILURE
  143.  
  144. exit     0
  145.