home *** CD-ROM | disk | FTP | other *** search
/ H4CK3R 16 / hacker16 / 16_HACKER16.ISO / linux / tpm-security-server-1.2.1.iso / archive / etc / rc.d / rc.iso next >
Encoding:
Text File  |  2004-01-29  |  7.1 KB  |  359 lines

  1. #!/bin/bash
  2. #
  3. # /etc/rc.iso - run once at boot time
  4. #
  5. # Taken in part from Miquel van Smoorenburg's bcheckrc.
  6. #
  7.  
  8.  
  9. echo "************************"
  10. echo "Started /etc/rc.d/rc.iso"
  11. echo "************************"
  12.  
  13. #Debug
  14. if [ "x$WATCHBOOT" = "xy" ]; then 
  15. echo "Directory of /dev"
  16. ls -ld /dev
  17. #ls -l /dev |more
  18. echo "4050: Press Enter to Continue"
  19. read A
  20. #sleep 5
  21. fi
  22.  
  23. #if [ "x$WATCHBOOT" = "xy" ]; then 
  24. #echo "Enter a Command"
  25. #echo -n ">"
  26. #read A
  27. #while [ "x$A" != "x" ]; do
  28. #$A
  29. #echo "Enter a Command"
  30. #echo -n ">"
  31. #read A
  32. #done
  33. #fi
  34.  
  35. #These 3 lines are not needed since the RAM disk support 
  36. #is built into the kernel
  37. #rmmod rd
  38. #insmod rd rd_size=60000
  39. #lsmod
  40.  
  41. #Debug
  42. if [ "x$WATCHBOOT" = "xy" ]; then 
  43. echo "4100: Press Enter to Continue"
  44. read A
  45. #sleep 5
  46. fi
  47.  
  48.  
  49. ###
  50. ### This is the start of the section to mount /etc
  51. ###
  52.  
  53. #Create the /etc partition (16MB)
  54. echo "Creating /etc"
  55. mke2fs -F -i 1024 -q /dev/rd/2 `grep -E -v "^#|^ *$" /etc/sysconfig/rd |grep "/etc" |cut -f2`
  56.  
  57. #Debug
  58. if [ "x$WATCHBOOT" = "xy" ]; then 
  59. echo "4150: Press Enter to Continue"
  60. read A
  61. #sleep 5
  62. fi
  63.  
  64. echo "Mounting /mnt/etc"
  65. mount -n /dev/rd/2 /mnt/etc -o defaults,rw
  66.  
  67. #Debug
  68. if [ "x$WATCHBOOT" = "xy" ]; then 
  69. echo "4200: Press Enter to Continue"
  70. read A
  71. #sleep 5
  72. fi
  73.  
  74. cd /archive/etc
  75. cp -R * /mnt/etc
  76. echo "Unmounting /mnt/etc, Mounting /etc"
  77. umount /mnt/etc
  78.  
  79. #Debug
  80. if [ "x$WATCHBOOT" = "xy" ]; then 
  81. echo "4250: Press Enter to Continue"
  82. read A
  83. #sleep 5
  84. fi
  85.  
  86. mount -n /dev/rd/2 /etc -o defaults,rw
  87.  
  88. #Debug
  89. if [ "x$WATCHBOOT" = "xy" ]; then 
  90. echo "4300: Press Enter to Continue"
  91. read A
  92. #sleep 5
  93. fi
  94.  
  95. rm /etc/mtab
  96. ln -s /proc/mounts /etc/mtab
  97.  
  98. #Debug
  99. if [ "x$WATCHBOOT" = "xy" ]; then 
  100. echo "Directory of /etc"
  101. ls -l /etc
  102. echo "4350: Press Enter to Continue"
  103. read A
  104. #sleep 5
  105. fi
  106.  
  107. ###
  108. ### This is the end of the section to mount /etc
  109. ###
  110.  
  111.  
  112.  
  113.  
  114. ###
  115. ### This is the start of the section to mount /var
  116. ###
  117.  
  118. #Create the /var partition (32MB)
  119. echo "Creating /var"
  120. mke2fs -F -i 1024 -q /dev/rd/1 `grep -E -v "^#|^ *$" /etc/sysconfig/rd |grep "/var" |cut -f2`
  121. #Debug
  122. if [ "x$WATCHBOOT" = "xy" ]; then 
  123. echo "4400: Press Enter to Continue"
  124. read A
  125. #sleep 5
  126. fi
  127.  
  128. if [ "x$WATCHBOOT" = "xy" ]; then 
  129. echo "Directory listing of /var"
  130. ls -l /var
  131. echo "4450: Press Enter to Continue"
  132. read A
  133. fi
  134.  
  135. echo "Mount RAM disk onto /var"
  136. mount -n -o defaults,rw /dev/rd/1 /var 
  137. #Debug
  138. if [ "x$WATCHBOOT" = "xy" ]; then 
  139. echo "4500: Press Enter to Continue"
  140. read A
  141. fi
  142.  
  143. if [ "x$WATCHBOOT" = "xy" ]; then 
  144. #sleep 5
  145. echo "Directory of /var"
  146. ls -l /var
  147. echo "4550: Press Enter to Continue"
  148. read A
  149. #sleep 5
  150. fi
  151.  
  152. cd /var
  153. mkdir -p lock/subsys spool/anacron spool/cron spool/at spool/mqueue spool/mail
  154. mkdir -p run/netreport
  155. mkdir -p log/httpd ntop nessus/logs nessus/CA nessus/jobs nessus/users
  156. mkdir mysql john
  157. mkdir empty webmin
  158. mkdir tmp
  159. mkdir lib
  160. ln -s spool/mail
  161. #Change all the ownerships
  162. chown -R root:root lock run log mysql spool tmp lib
  163. chown daemon:daemon spool/at
  164. chown ntop:nobody ntop
  165. chown mysql:mysql mysql
  166. chgrp uucp lock
  167. chgrp mail spool/mqueue spool/mail
  168. #Change all the permissions
  169. chmod 755 run log mysql spool lib
  170. chmod -R 775 lock
  171. chmod 777 spool/mail
  172. chmod 700 spool/cron spool/at
  173. chmod 775 run/netreport
  174. chmod 1777 tmp
  175. touch log/wtmp log/lastlog run/utmp
  176. chmod 664 log/wtmp run/utmp
  177. chown root:utmp /var/log/wtmp /var/run/utmp
  178. chmod 644 log/lastlog
  179.  
  180.  
  181.  
  182. #Debug
  183. if [ "x$WATCHBOOT" = "xy" ]; then 
  184. echo "Directory of /var"
  185. ls -l /var
  186. echo "4600: Press Enter to Continue"
  187. read A
  188. #sleep 5
  189. fi
  190.  
  191. ###
  192. ### This is the end of the section to mount /var
  193. ###
  194.  
  195.  
  196.  
  197. echo "Creating entries in /etc/mtab"
  198. mount -f /dev/rd/2 /etc -o defaults,rw
  199. mount -f /dev/rd/1 /var -o defaults,rw
  200. #mount -f /dev/rd/3 /dev -o defaults,rw
  201. mount -f /dev/rd/3 /dev -o defaults,rw
  202.  
  203.  
  204. ###
  205. ### This is the start of the section to mount /mnt/floppy 
  206. ### and to copy configuration data from the floppy
  207. ###
  208. if [ "x$CONFIGFLOPPY" = "xy" ]; then
  209. echo "Trying to mount floppy disk"
  210. if [ "x$WATCHBOOT" = "xy" ]; then 
  211. echo "4650: Press Enter to Continue"
  212. read A
  213. #sleep 5
  214. fi
  215.  
  216. insmod fat
  217. insmod vfat
  218.  
  219. #Try mounting floppy for soft config files
  220. mount -t auto -o ro /dev/floppy/0 /mnt/floppy
  221.  
  222. if [ $? -eq 0 ] ; then 
  223. cd /mnt/floppy 
  224.  
  225. AP=`ls profile[0-9].tgz |grep -c profile`
  226. if [ $AP -ne 0 ] ; then
  227.     echo "The following configuration profiles are available:"
  228.     echo ""
  229.     ls profile[0-9].tgz |cut -d. -f1
  230.     echo ""
  231.     if [ -e /mnt/floppy/profile0.tgz ] ; then
  232.         echo "Select a profile or wait 10 seconds to use profile 0"
  233.     else
  234.         echo "Select a profile or wait 10 seconds to use a blank profile"
  235.     fi
  236.  
  237.     cd /
  238.     while [ "x" = "x" ]; do
  239.     PROFILE=""
  240.     read -t 10 -s -n 1 PROFILE
  241.     if [ "x$PROFILE" != "x" ] ; then
  242.         if [ -e /mnt/floppy/profile$PROFILE.tgz ] ; then
  243.             echo "Using profile $PROFILE"
  244.             tar -zxvf /mnt/floppy/profile$PROFILE.tgz
  245.             chown 0:0 /etc/shadow
  246.             chmod 400 /etc/shadow
  247.             chown 0:0 /etc/samba/smb.conf
  248.             chmod 644 /etc/samba/smb.conf
  249.             chown 0:0 /etc/samba/private/secrets.tdb
  250.             chmod 600 /etc/samba/private/secrets.tdb
  251.             chown -R 0:0 /etc/sysconfig
  252.             chmod 755 /etc/sysconfig/*
  253.             chmod -R 644 /etc/sysconfig/*
  254.             chown -R 0:0 /etc/ppp
  255.             chmod -R 700 /etc/ppp/*
  256.             chown 0:0 /etc/ipsec.conf
  257.             chmod 755 /etc/ipsec.conf
  258.             chown -R 0:0 /etc/ipsec.d
  259.             chmod -R 755 /etc/ipsec.d
  260.             chown -R 0:0 /etc/minicom
  261.             chmod 755 /etc/minicom
  262.             chmod -R 644 /etc/minicom/*
  263.             break
  264.         else
  265.             echo "That profile does not exist"
  266.         fi
  267.     else
  268.         if [ -e /mnt/floppy/profile0.tgz ] ; then
  269.             echo "Continuing with profile 0"
  270.             tar -zxvf /mnt/floppy/profile0.tgz
  271.             chown 0:0 /etc/shadow
  272.             chmod 400 /etc/shadow
  273.             chown 0:0 /etc/samba/smb.conf
  274.             chmod 644 /etc/samba/smb.conf
  275.             chown 0:0 /etc/samba/private/secrets.tdb
  276.             chmod 600 /etc/samba/private/secrets.tdb
  277.             chown -R 0:0 /etc/sysconfig
  278.             chmod 755 /etc/sysconfig/*
  279.             chmod -R 644 /etc/sysconfig/*
  280.             chown -R 0:0 /etc/ppp
  281.             chmod -R 700 /etc/ppp/*
  282.             chown 0:0 /etc/ipsec.conf
  283.             chmod 755 /etc/ipsec.conf
  284.             chown -R 0:0 /etc/ipsec.d
  285.             chmod -R 755 /etc/ipsec.d
  286.             chown -R 0:0 /etc/minicom
  287.             chmod 755 /etc/minicom
  288.             chmod -R 644 /etc/minicom/*
  289.         else
  290.             echo "Continuing with a blank profile"
  291.         fi
  292.         break
  293.     fi
  294.     done
  295. fi
  296. fi
  297. ###
  298. ### This is the end of the section to mount /mnt/floppy 
  299. ### and to copy configuration data from the floppy
  300. ###
  301.  
  302.  
  303. ###
  304. ### This is the start of the section to unmount /mnt/floppy 
  305. ### if it is currently mounted
  306. ###
  307.  
  308. remaining=`cat /proc/mounts | awk '/( \/mnt\/floppy )/ { print $2 }'`
  309. for i in "$remaining"; do
  310.         umount $i
  311. done
  312. fi
  313.  
  314. ###
  315. ### This is the end of the section to unmount /mnt/floppy 
  316. ### if it is currently mounted
  317. ###
  318.  
  319.  
  320. ###
  321. ### This is the start of the section to mount /root
  322. ###
  323.  
  324. #Create the /root partition for the root user
  325. echo "Creating /root"
  326. mke2fs -F -i 1024 -q /dev/rd/3 `grep -E -v "^#|^ *$" /etc/sysconfig/rd |grep "/root" |cut -f2`
  327. echo "Mounting /mnt/etc"
  328. mount /dev/rd/3 /root -o defaults,rw
  329.  
  330. ###
  331. ### This is the end of the section to mount /root
  332. ###
  333.  
  334.  
  335.  
  336. #Debug
  337. if [ "x$WATCHBOOT" = "xy" ]; then 
  338. echo "4700: Press Enter to Continue"
  339. read A
  340. #sleep 5
  341. fi
  342.  
  343. #Debug
  344. if [ "x$WATCHBOOT" = "xy" ]; then 
  345. echo "Current file systems mounted"
  346. mount
  347. df -k
  348. echo "4750: Press Enter to Continue"
  349. read A
  350. #sleep 10
  351. fi
  352.  
  353.  
  354. echo "*****************************"
  355. echo "Finished /etc/rc.d/rc.iso"
  356. echo "*****************************"
  357.  
  358.  
  359.