ETC=/etc
+USRETC=/usr/etc
FILES1=fstab group hostname.file inet.conf motd mtab passwd profile protocols rc services termcap ttytab utmp
FILES2=shadow
+FILES3=daily dhcptags.conf rc
all::
clean::
install::
- @echo "Installing /etc.."
+ @echo "Installing /etc and /usr/etc.."
mkdir -p $(ETC)
for f in $(FILES1); do if [ -f $(ETC)/$$f ]; then echo $$f exists; else cp $$f $(ETC); fi; done
- for f in $(FILES2); do if [ -f $(ETC)/$$f ]; then echo $$f exists; else cp $$f $(ETC); chmod 600 $$f; fi; done
+ for f in $(FILES2); do if [ -f $(ETC)/$$f ]; then echo $$f exists; else cp $$f $(ETC); chmod 600 $(ETC)/$$f; fi; done
+ for f in $(FILES3); do if [ -f $(USRETC)/$$f ]; then echo $$f exists; else cp usr/$$f $(USRETC); chmod 755 $(USRETC)/$$f; fi; done
@echo "Making hierarchy.."
./mtree.sh mtree/minix.tree
cd /dev && /usr/src/commands/scripts/MAKEDEV.sh std
555 root operator /fd0
755 root operator /lib
755 root operator /lib/i386
-755 bin operator /boot
+755 root operator /boot
+755 root operator /boot/image
555 root operator /mnt
555 root operator /root
-1777 root operator /tmp
+1777 root operator /tmp
755 root operator /usr
755 root operator /usr/adm
755 root operator /usr/adm/old
--- /dev/null
+#!/bin/sh
+#
+# daily - daily cleanup of the system.
+
+case "$#:$1" in
+1:cron|1:boot)
+ caller=$1
+ ;;
+*) echo >&2 "Usage: $0 cron|boot"
+ exit 1
+esac
+
+test -d /usr/adm || exit
+cd /usr/adm || exit
+
+# Last run must have been on a previous day.
+timestamp=daily.lasttime
+if test -f $timestamp
+then
+ set -- `ls -lT $timestamp`
+ test "$6 $7 $9" = "$(date '+%b %d %Y')" && exit
+fi
+>$timestamp
+
+# Remove three day old files from various tmp dirs.
+cleantmp -3 /tmp /usr/tmp /usr/preserve /usr/spool/lpd /usr/spool/at/past
+
+# Truncate log files in /usr/adm.
+test -d old || mkdir old || exit
+
+cycle()
+{
+ # Cycle a log file if larger than a size in kilobytes.
+ local size="`expr "$1" + "$1"`"
+ local log="$2"
+
+ if test -f "$log" && test -n "$(find "$log" -size +"$size")"
+ then
+ test -f "old/$log.2" && cp -p "old/$log.2" "old/$log.3"
+ test -f "old/$log.1" && cp -p "old/$log.1" "old/$log.2"
+ cp -p "$log" "old/$log.1"
+ : > "$log"
+ fi
+}
+
+cycle 100 wtmp
+cycle 100 log
+cycle 20 ftplog
+cycle 200 aftplog
+
+# Make copies of /etc/passwd and /etc/shadow if they have been changed.
+for file in passwd shadow
+do
+ if cmp -s /etc/$file old/$file.1
+ then
+ # Fine.
+ else
+ test -f old/$file.2 && cp -p old/$file.2 old/$file.3
+ test -f old/$file.1 && cp -p old/$file.1 old/$file.2
+ test -f /etc/$file && cp -p /etc/$file old/$file.1
+ fi
+done
+
+# Continue with a local script if present.
+test -f /usr/local/etc/daily && sh /usr/local/etc/daily $caller
+exit 0
--- /dev/null
+# A list of all tags mentioned in RFC-1533.
+
+tag 1 netmask ip 1 1;
+tag 2 zoneoffset number 4 1;
+tag 3 gateway ip 1 0;
+tag 4 timeserver ip 1 0;
+tag 5 nameserver ip 1 0;
+tag 6 DNSserver ip 1 0;
+tag 7 logserver ip 1 0;
+tag 8 cookieserver ip 1 0;
+tag 9 LPR ip 1 0;
+tag 10 impress ip 1 0;
+tag 11 resource ip 1 0;
+tag 12 hostname ascii 1 0;
+tag 13 bootfilesize number 2 1;
+tag 14 coredump ip 1 0;
+tag 15 domain ascii 1 0;
+tag 16 swapserver ip 1 1;
+tag 17 rootpath ascii 1 0;
+tag 18 extensions ascii 1 0;
+tag 19 IPforwarding boolean 1 1;
+tag 20 IPnonlocalsource boolean 1 1;
+tag 21 IPpolicyfilter ip 2 0;
+tag 22 IPmaxreassembly number 2 1;
+tag 23 IPTTL number 1 1;
+tag 24 IPMTUaging number 4 1;
+tag 25 IPMTUplateau number 2 0;
+tag 26 IPMTU number 2 1;
+tag 27 IPsublocal boolean 1 1;
+tag 28 IPbroadcast ip 1 1;
+tag 29 IPmaskdiscovery boolean 1 1;
+tag 30 IPmasksupplier boolean 1 1;
+tag 31 IPdiscovery boolean 1 1;
+tag 32 IPsolicitation ip 1 1;
+tag 33 IPstaticroute ip 2 0;
+tag 34 ARPtrailer boolean 1 1;
+tag 35 ARPtimeout number 4 1;
+tag 36 ETHencapsulation boolean 1 1;
+tag 37 TCPTTL number 1 1;
+tag 38 TCPkeepaliveinterval number 4 1;
+tag 39 TCPkeepalivegarbage boolean 1 1;
+tag 40 NISdomain ascii 1 0;
+tag 41 NISserver ip 1 0;
+tag 42 NTPserver ip 1 0;
+tag 43 VENDOR octet 1 0;
+tag 44 NetBIOSNS ip 1 0;
+tag 45 NetBIOSdgram ip 1 0;
+tag 46 NetBIOSnodetype number 1 1;
+tag 47 NetBIOSscope octet 1 0;
+tag 48 Xfontserver ip 1 0;
+tag 49 XDM ip 1 0;
+tag 50 DHCPreqip ip 1 1;
+tag 51 DHCPlease number 4 1;
+tag 52 DHCPoverload number 1 1;
+tag 53 DHCPtype number 1 1;
+tag 54 DHCPserverID ip 1 1;
+tag 55 DHCPreqpar number 1 0;
+tag 56 DHCPmessage ascii 1 0;
+tag 57 DHCPsize number 2 1;
+tag 58 DHCPrenewal number 4 1;
+tag 59 DHCPrebinding number 4 1;
+tag 60 DHCPclassID ascii 1 0;
+tag 61 DHCPclientID octet 1 0;
--- /dev/null
+# /usr/etc/rc - continued system initialization.
+
+case "$#:$1" in
+1:start|1:stop|1:down)
+ action=$1
+ ;;
+*) echo >&2 "Usage: $0 start|stop|down"
+ exit 1
+esac
+
+daemonize()
+{
+ # Function to start a daemon, if it exists.
+ local IFS=':'
+ local name="$1"
+ test "$1" = tcpd && name="$2"
+
+ for dir in $PATH
+ do
+ if [ -f "$dir/$1" ]
+ then
+ echo -n " $name"
+ "$@" &
+ return
+ fi
+ done
+}
+
+case $action in
+start)
+ # Select console font.
+ test -f /etc/font && loadfont /etc/font </dev/console
+
+ # Cleanup.
+ rm -rf /tmp/. /usr/run/. /usr/spool/lpd/. /usr/spool/locks/.
+
+ # Start servers.
+ ifs="$IFS"; IFS=,
+ for server in `sysenv servers`; do $server; done
+ IFS="$ifs"; unset ifs
+ sleep 1
+
+ # Network initialization.
+ (: </dev/tcp) 2>/dev/null && net=t # Is there a TCP/IP server?
+
+ echo -n "Starting daemons:"
+ daemonize update
+ daemonize cron
+
+ if [ "$net" ]
+ then
+ if [ -f /etc/rc.net ]
+ then
+ # Let a customized TCP/IP initialization script figure it out.
+ . /etc/rc.net
+ else
+ # Standard network daemons.
+ daemonize dhcpd
+ daemonize nonamed
+ daemonize talkd
+ daemonize tcpd shell in.rshd
+ daemonize tcpd login in.rlogind
+ daemonize tcpd telnet in.telnetd
+ daemonize tcpd ftp in.ftpd
+ fi
+ fi
+
+ # The last daemon has been started, so close the list:
+ echo .
+
+ if [ "$net" ]
+ then
+ # Get the nodename from the DNS and set it.
+ t='-t 10'
+ trap '' 2
+ while :;
+ do
+ intr $t hostaddr -h
+
+ case $? in
+ 142)
+ echo "\
+Unable to obtain an IP address after 10 seconds. Hit DEL to get a root
+prompt to investigate, otherwise just wait until an address is received..."
+ t=
+ ;;
+ 130)
+ echo "Single user."
+ intr sh
+ echo "Continue waiting for an address..."
+ ;;
+ *) break
+ esac
+ done
+ trap 2
+ fi
+
+ # Recover files being edited when the system crashed.
+ test -f /usr/bin/elvprsv && elvprsv /usr/tmp/elv*
+
+ # Run the daily cleanup on systems that are not on at night.
+ test -f /usr/etc/daily && sh /usr/etc/daily boot &
+esac