#!/bin/bash set -e [[ -z $1 ]] && echo "usage: ${0##*/} " && exit 1 target=$1 [[ ! -f slackstart.conf ]] && echo slackstart.conf missing && exit 1 echo -n sourcing slackstart.conf ... . ./slackstart.conf && echo done [[ -z $host ]] && echo define host && exit 1 [[ -z $cidr ]] && echo define cidr && exit 1 [[ -z $gw ]] && echo define gw && exit 1 [[ -z $dns ]] && echo define dns && exit 1 [[ -n $pubkeyfile ]] && echo notice pubkeyfile is defined [[ -n $pubkeys ]] && echo notice pubkeys is defined [[ -n $search_domain ]] && echo notice search_domain is defined [[ ! -d $target/etc/rc.d/ ]] && echo $target/etc/rc.d/ not found && exit 1 [[ ! -d $target/root/ ]] && echo $target/root/ not found && exit 1 # network-scripts package may not be installed # but if it is, just remove the defaults [[ -f $target/etc/rc.d/rc.inet1 ]] && rm -f $target/etc/rc.d/rc.inet1 [[ -f $target/etc/rc.d/rc.inet1.conf ]] && rm -f $target/etc/rc.d/rc.inet1.conf [[ -f $target/etc/rc.d/rc.inet2 ]] && rm -f $target/etc/rc.d/rc.inet2 echo -n rc.inet1 network setup ... cat > $target/etc/rc.d/rc.inet1 < $target/etc/rc.d/rc.inet2 < $target/etc/HOSTNAME && echo done [[ ! -f $target/etc/hosts.dist ]] && mv -i $target/etc/hosts $target/etc/hosts.dist echo -n static name resolution ... cat > $target/etc/hosts <> $target/etc/resolv.conf && echo done done; unset dns_ip [[ -n $search_domain ]] && echo search $search_domain | tee -a $target/etc/resolv.conf rm -f $target/root/.ssh/authorized_keys if [[ -n $pubkeyfile ]]; then [[ ! -f $pubkeyfile ]] && echo cannot find pub key file $pubkeyfile && exit 1 echo -n pushing defined pub key file $pubkeyfile ... mkdir -p $target/root/.ssh/ cat $pubkeyfile >> $target/root/.ssh/authorized_keys && echo done chmod 700 $target/root/.ssh/ chmod 600 $target/root/.ssh/authorized_keys fi if [[ -n $pubkeys ]]; then echo -n pushing defined pub keys ... mkdir -p $target/root/.ssh/ echo "$pubkeys" >> $target/root/.ssh/authorized_keys && echo done chmod 700 $target/root/.ssh/ chmod 600 $target/root/.ssh/authorized_keys fi echo all done