remove bootes, fix inst/authsetup, use ndb for ipconfig before trying dhcp
This commit is contained in:
parent
0fff50776c
commit
c9dc319649
7 changed files with 75 additions and 91 deletions
57
rc/bin/cpurc
57
rc/bin/cpurc
|
@ -29,37 +29,41 @@ prompt=($sysname^'# ' ' ')
|
|||
if(test -e /cfg/$sysname/cpurc)
|
||||
. /cfg/$sysname/cpurc
|
||||
|
||||
# start up internet if we don't already have an address
|
||||
if(! grep u /net/ipselftab | grep -sv 127.0.0.1)
|
||||
ip/ipconfig
|
||||
# automatic ip address setup
|
||||
if(! grep u /net/ipselftab | grep -sv 127.0.0.1){
|
||||
ether=`{ndb/query sys $sysname ether}
|
||||
if(~ $#ether 1){
|
||||
# try /lib/ndb first, then do dhcp
|
||||
ip/ipconfig -N || ip/ipconfig
|
||||
}
|
||||
rm -f /env/ether
|
||||
}
|
||||
|
||||
# if we're not a server, start a dns resolver
|
||||
if(! test -e /srv/dns)
|
||||
ndb/dns -r
|
||||
|
||||
# If you are on an auth server, start these before listening:
|
||||
#
|
||||
auth/keyfs -wp -m /mnt/keys /adm/keys >/dev/null >[2=1]
|
||||
auth/cron >>/sys/log/cron >[2=1] &
|
||||
#
|
||||
# also rename some files:
|
||||
#
|
||||
# if(! test -e /rc/bin/service.auth/tcp567){
|
||||
# mv /rc/bin/service.auth/authsrv.il566 /rc/bin/service.auth/il566
|
||||
# mv /rc/bin/service.auth/authsrv.tcp567 /rc/bin/service.auth/tcp567
|
||||
# mv /rc/bin/service/il566 /rc/bin/service/_il566
|
||||
# mv /rc/bin/service/tcp567 /rc/bin/service/_tcp567
|
||||
# }
|
||||
|
||||
# start listeners
|
||||
aux/listen -q -t /rc/bin/service.auth -d /rc/bin/service tcp
|
||||
|
||||
if(! ps|grep -s timesync){
|
||||
aux/timesync -n pool.ntp.org
|
||||
if (test -e '#r/rtc') @ {
|
||||
sleep 10 # let timesync correct the time
|
||||
awk '{print $1}' /dev/time >'#r/rtc' # fix hw clock
|
||||
} &
|
||||
if(~ $#ntp 0)
|
||||
eval `{ndb/ipquery sys $sysname ntp}
|
||||
if(~ $#ntp 0)
|
||||
ntp=pool.ntp.org
|
||||
aux/timesync -n $ntp
|
||||
sleep 2
|
||||
}
|
||||
|
||||
if(~ $#auth 0)
|
||||
eval `{ndb/ipquery sys $sysname auth}
|
||||
switch($auth){
|
||||
case `{ echo $sysname; ndb/query sys $sysname dom
|
||||
for(i in `{awk '/u\ *$/{print $1}' /net/ipselftab}){
|
||||
echo $i; ndb/ipquery ip $i dom; ndb/ipquery ip $i sys
|
||||
} | sed 's,[^ ]+=,,g'}
|
||||
# cpu+auth server
|
||||
auth/keyfs -wp -m /mnt/keys /adm/keys
|
||||
aux/listen -q -t /rc/bin/service.auth -d /rc/bin/service tcp
|
||||
case *
|
||||
# cpu server
|
||||
aux/listen -q -d /rc/bin/service tcp
|
||||
}
|
||||
|
||||
# cpu-specific late startup
|
||||
|
@ -70,5 +74,4 @@ if(test -e /cfg/$sysname/cpustart)
|
|||
# other /proc files, such as note, so let listen be killed.
|
||||
dontkill '^(ipconfig|factotum|mntgen|venti|kfs|cwfs.*|cs|dns|reboot)$'
|
||||
|
||||
# echo `{date} $sysname >>/sys/log/boot
|
||||
exit ''
|
||||
|
|
|
@ -1,36 +1,34 @@
|
|||
#!/bin/rc
|
||||
|
||||
# desc: set system password for auth, invalidate nvram
|
||||
# desc: invalidate nvram
|
||||
# prereq: systype copydist
|
||||
|
||||
nvram=`{echo `{basename -d $fs}^/nvram}
|
||||
nvram=(/dev/sd*/nvram)
|
||||
nvram=nvram(1)
|
||||
|
||||
switch($1) {
|
||||
case checkdone
|
||||
if(! ~ $syst cpu || ! grep trust $nvram){
|
||||
authsetup=ready
|
||||
export authsetup
|
||||
}
|
||||
case go
|
||||
echo
|
||||
echo 'Setup keyfs and provide a password for the machine'
|
||||
echo 'Invalidate nvram'
|
||||
echo
|
||||
|
||||
auth/keyfs
|
||||
|
||||
if(! grep trust $nvram)
|
||||
echo 'trust, but verify' >$nvram >[2=1]
|
||||
echo 'trust, but verify' >$nvram
|
||||
|
||||
echo
|
||||
echo 'You will be asked to enter an authid, authdom, secstore key,'
|
||||
echo 'and password upon next boot. The authid is the hostowner.'
|
||||
echo 'The authdom is the domain from your network configuration.'
|
||||
echo 'The secstore key and password should be a secret password'
|
||||
echo 'of eight characters or greater in length. Remember the'
|
||||
echo 'password, you will need to use it again when creating the'
|
||||
echo 'bootes user on the auth server.'
|
||||
echo 'of eight characters or greater in length. On an auth server,'
|
||||
echo 'the password will be used to encrypt the user database'
|
||||
echo '/adm/keys'
|
||||
echo
|
||||
|
||||
authsetup=done
|
||||
export authsetup
|
||||
case checkdone
|
||||
if(~ $syst cpu && test -w $nvram && ! grep -s trust $nvram){
|
||||
authsetup=ready
|
||||
export authsetup
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@ case go
|
|||
{
|
||||
echo 'bootfile='^$bootfile
|
||||
echo 'bootargs=local!'^$fs
|
||||
echo 'sysname=cirno'
|
||||
echo 'mouseport='^$mouseport
|
||||
echo 'monitor='^$monitor
|
||||
echo 'vgasize='^$vgasize
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
# desc: choose and mount file system partition
|
||||
# prereq: systype
|
||||
|
||||
service=cwfs
|
||||
|
||||
switch($1){
|
||||
case go
|
||||
echo
|
||||
|
@ -53,13 +55,13 @@ case go
|
|||
|
||||
log Starting $fstype file server for $fs
|
||||
unmount /n/newfs >[2]/dev/null
|
||||
echo halt >>/srv/cwfs.cmd >[2]/dev/null
|
||||
rm -f /srv/cwfs /srv/cwfs.cmd
|
||||
echo halt >>/srv/$service.cmd >[2]/dev/null
|
||||
rm -f /srv/$service /srv/$service.cmd
|
||||
|
||||
if(~ $ream yes){
|
||||
if(! test -f /tmp/fsconfig){
|
||||
{
|
||||
echo service cwfs
|
||||
echo service $service
|
||||
echo config $fs
|
||||
|
||||
if(! ~ $syst cpu){
|
||||
|
@ -86,7 +88,7 @@ case go
|
|||
}
|
||||
if not {
|
||||
echo 'Entering manual configuration mode. when done, type end'
|
||||
if(! $fstype -n cwfs -f $fs -c){
|
||||
if(! $fstype -n $service -f $fs -c){
|
||||
mountfs=ready
|
||||
export mountfs
|
||||
exit oops
|
||||
|
@ -95,6 +97,7 @@ case go
|
|||
|
||||
log Configuering $fstype file server for $fs
|
||||
{
|
||||
echo noattach
|
||||
echo allow
|
||||
echo users default
|
||||
echo cfs main
|
||||
|
@ -102,9 +105,6 @@ case go
|
|||
echo create /adm/users adm adm 664
|
||||
echo create /dist sys sys 775 d
|
||||
echo create /usr sys sys 775 d
|
||||
echo newuser adm +bootes
|
||||
echo newuser sys +bootes
|
||||
echo newuser upas +bootes
|
||||
echo newuser $user
|
||||
echo newuser adm +$user
|
||||
echo newuser sys +$user
|
||||
|
@ -113,30 +113,26 @@ case go
|
|||
echo cfs other
|
||||
echo create /dist sys sys 775 d
|
||||
echo create /usr sys sys 775 d
|
||||
echo create /usr/bootes bootes bootes 775 d
|
||||
echo create /usr/bootes/tmp bootes bootes 750 d
|
||||
echo create /usr/$user $user $user 775 d
|
||||
echo create /usr/$user/tmp $user $user 750 d
|
||||
echo cfs main
|
||||
}
|
||||
} >>/srv/cwfs.cmd
|
||||
sleep 5
|
||||
echo noattach
|
||||
sleep 2
|
||||
} >>/srv/$service.cmd
|
||||
|
||||
log Mounting $fstype file server for $fs
|
||||
if(! logprog mount -c /srv/cwfs /n/newfs){
|
||||
mountfs=ready
|
||||
export mountfs
|
||||
exit
|
||||
}
|
||||
while(! logprog mount -c /srv/$service /n/newfs)
|
||||
sleep 2
|
||||
if(! ~ $fsother ''){
|
||||
log Mounting $fstype file server for $fsother
|
||||
if(logprog mount -c /srv/cwfs /n/other other)
|
||||
if(logprog mount -c /srv/$service /n/other other)
|
||||
bind -qc /n/other/dist /n/newfs/dist
|
||||
}
|
||||
|
||||
case checkready checkdone
|
||||
if(! ~ $fstype '' && ~ $#fs 1 && test -f $fs){
|
||||
if(test -f /srv/cwfs && test -d /n/newfs/dist){
|
||||
if(test -f /srv/$service && test -d /n/newfs/dist){
|
||||
mountfs=done
|
||||
export mountfs
|
||||
exit
|
||||
|
|
|
@ -36,19 +36,17 @@ NPROC = `{wc -l </dev/sysstat}
|
|||
if(test -e /cfg/$sysname/termrc)
|
||||
. /cfg/$sysname/termrc
|
||||
|
||||
# start IP on the LAN, if not already configured. diskless terminals
|
||||
# are already configured by now. It's commented out to avoid a long timeout
|
||||
# on startup waiting for DHCP.
|
||||
#
|
||||
# If your site provides DHCP service,
|
||||
#
|
||||
#if(! test -e /net/ipifc/0/ctl)
|
||||
# ip/ipconfig
|
||||
#
|
||||
# Otherwise, see /cfg/$sysname/termrc (/cfg/example/termrc is an example).
|
||||
# automatic ip address setup
|
||||
if(! grep u /net/ipselftab | grep -sv 127.0.0.1){
|
||||
ether=`{ndb/query sys $sysname ether}
|
||||
if(~ $#ether 1){
|
||||
# try /lib/ndb first, then do dhcp
|
||||
ip/ipconfig -N || ip/ipconfig
|
||||
}
|
||||
rm -f /env/ether
|
||||
}
|
||||
|
||||
# start dns if we have an internet
|
||||
if(test -e /net/ipifc/0/ctl && ! test -e /srv/dns)
|
||||
if(! test -e /srv/dns)
|
||||
ndb/dns -r
|
||||
|
||||
if(! ~ $terminal *vx32*){
|
||||
|
|
|
@ -19,8 +19,6 @@ mail d775 upas upas
|
|||
uid=upas
|
||||
gid=upas
|
||||
box d775
|
||||
bootes d775 bootes bootes
|
||||
mbox a662 bootes bootes /sys/lib/dist/empty
|
||||
glenda d775 glenda glenda
|
||||
mbox a662 glenda glenda /sys/lib/dist/empty
|
||||
faxoutqueue d775
|
||||
|
@ -94,6 +92,7 @@ sys d775
|
|||
+
|
||||
log d775
|
||||
auth a662 sys sys /sys/lib/dist/empty
|
||||
boot a662 sys sys /sys/lib/dist/empty
|
||||
cpu a662 sys sys /sys/lib/dist/empty
|
||||
cron a662 sys sys /sys/lib/dist/empty
|
||||
cs a662 sys sys /sys/lib/dist/empty
|
||||
|
@ -104,14 +103,15 @@ sys d775
|
|||
httpd a662 sys sys /sys/lib/dist/empty
|
||||
imap4d a662 sys sys /sys/lib/dist/empty
|
||||
ipboot a662 sys sys /sys/lib/dist/empty
|
||||
ipboot a662 sys sys /sys/lib/dist/empty
|
||||
listen a662 sys sys /sys/lib/dist/empty
|
||||
|
||||
mail a662 sys sys /sys/lib/dist/empty
|
||||
runq a662 sys sys /sys/lib/dist/empty
|
||||
smtp a662 sys sys /sys/lib/dist/empty
|
||||
smtp.fail a662 sys sys /sys/lib/dist/empty
|
||||
smtpd a662 sys sys /sys/lib/dist/empty
|
||||
smtpd.mx a662 sys sys /sys/lib/dist/empty
|
||||
runq a662 sys sys /sys/lib/dist/empty
|
||||
|
||||
secstore a662 sys sys /sys/lib/dist/empty
|
||||
timesync a662 sys sys /sys/lib/dist/empty
|
||||
|
@ -123,18 +123,8 @@ sys d775
|
|||
+
|
||||
|
||||
tmp d555
|
||||
|
||||
usr d775
|
||||
bootes d775 bootes bootes
|
||||
uid=bootes
|
||||
gid=bootes
|
||||
bin d775
|
||||
386 d775
|
||||
+
|
||||
rc d775
|
||||
+
|
||||
lib d775
|
||||
*
|
||||
tmp d775
|
||||
glenda d775 glenda glenda
|
||||
uid=glenda
|
||||
gid=glenda
|
||||
|
|
Loading…
Reference in a new issue