]> andersk Git - openssh.git/blob - contrib/solaris/postinstall.in
- (djm) Added /etc/primes for kex DH group neg, fixup Makefile.in and
[openssh.git] / contrib / solaris / postinstall.in
1 # PostInstall script for OPENssh
2 INSTALLF="/usr/sbin/installf"
3
4 instbackup() {
5     _DIRECTORY=$1
6     _FILEBASE=$2
7     $INSTALLF $PKGINST ${_DIRECTORY}/${_FILEBASE}
8     _SUFFIX=`/usr/bin/date +%Y-%m-%d-%H%M`
9     if [ -f ${_DIRECTORY}/${_FILEBASE} ]; then
10         echo "   Backing up file ${_FILEBASE}..."
11         if [ -f ${_DIRECTORY}/${_FILEBASE}.orig ]; then
12             $INSTALLF $PKGINST ${_DIRECTORY}/${_FILEBASE}.orig.${_SUFFIX}
13             cp -p ${_DIRECTORY}/${_FILEBASE} ${_DIRECTORY}/${_FILEBASE}.orig.${_SUFFIX}
14             echo "   Saved as ${_DIRECTORY}/${_FILEBASE}.orig.${_SUFFIX}."
15         else 
16             $INSTALLF $PKGINST ${_DIRECTORY}/${_FILEBASE}.orig
17             cp -p ${_DIRECTORY}/${_FILEBASE} ${_DIRECTORY}/${_FILEBASE}.orig
18             echo "   Saved as ${_DIRECTORY}/${_FILEBASE}.orig."
19         fi
20     fi
21     cp -p ${_DIRECTORY}/${_FILEBASE}.default ${_DIRECTORY}/${_FILEBASE}
22     echo "Installed new ${_DIRECTORY}/${_FILEBASE} configuration file."
23
24
25 ### Main body of script
26
27 echo ""
28 echo "Beginning postinstall script--this script should leave you with a"
29 echo "functional and operational configuration of OpenSSH."
30 echo ""
31
32 if [ ! "${UPDATE}" = "1" ]; then
33     echo "Performing a \"fresh\" installation of OpenSSH."
34     ### Install init script and create symlinks
35     $INSTALLF $PKGINST ${PKG_INSTALL_ROOT}/etc/init.d/sshd f 0500 root sys || exit 2
36     cp -p ${CONFDIR}/sshd-initscript ${PKG_INSTALL_ROOT}/etc/init.d/sshd
37     $INSTALLF $PKGINST ${PKG_INSTALL_ROOT}/etc/rc2.d/S72local_sshd=/etc/init.d/sshd s || exit 2
38     $INSTALLF $PKGINST ${PKG_INSTALL_ROOT}/etc/rc1.d/K30local_sshd=/etc/init.d/sshd s || exit 2
39     $INSTALLF $PKGINST ${PKG_INSTALL_ROOT}/etc/rc0.d/K30local_sshd=/etc/init.d/sshd s || exit 2
40
41     ### The initial package installation leaves default versions of
42     ### ssh_prng_cmds, ssh_config, and sshd_config in ${CONFDIR}.  Now
43     ### we need to decide whether to install them.  Since this is *not*
44     ### an update install, we don't ask, but simply back up the old ones
45     ### and put the new ones in their place.
46     instbackup ${CONFDIR} ssh_prng_cmds
47     instbackup ${CONFDIR} ssh_config
48     instbackup ${CONFDIR} sshd_config
49     instbackup ${CONFDIR} primes
50
51     ### If no existing sshd_config and host key, then create
52     if [ ! -f "${CONFDIR}/ssh_host_key" ]; then
53         echo "Creating new RSA public/private host key pair for SSH-1."
54         $INSTALLF $PKGINST ${CONFDIR}/ssh_host_key
55         $INSTALLF $PKGINST ${CONFDIR}/ssh_host_key.pub
56         ### If there is *anything* there then leave it, otherwise look
57         ### in some reasonable alternate locations before giving up.
58         ### It's worth spending some extra time looking for the old one
59         ### to avoid a bunch of "host identification has changed" warnings.
60         ### Note that some old keys from the commercial SSH might not
61         ### be compatible, but we don't test for that.
62         if [ -f "${PKG_INSTALL_ROOT}/etc/ssh_host_key" ]; then
63            mv ${PKG_INSTALL_ROOT}/etc/ssh_host_key ${CONFDIR}
64         elif [ -f "${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_key" ]; then
65            mv ${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_key ${CONFDIR}
66         else
67            ${DESTBIN}/ssh-keygen -b 1024 -f ${CONFDIR}/ssh_host_key -N ''
68         fi
69     else
70         echo "Using existing RSA public/private host key pair for SSH-1."
71     fi
72     if [ ! -f "${CONFDIR}/ssh_host_dsa_key" ]; then
73         echo "Creating new DSA public/private host key pair for SSH-2."
74         $INSTALLF $PKGINST ${CONFDIR}/ssh_host_dsa_key
75         $INSTALLF $PKGINST ${CONFDIR}/ssh_host_dsa_key.pub
76         ### If there is *anything* there then leave it, otherwise look
77         ### in some reasonable alternate locations before giving up.
78         ### It's worth spending some extra time looking for the old one
79         ### to avoid a bunch of "host identification has changed" warnings.
80         ### Note that some old keys from the commercial SSH2 might not
81         ### be compatible, but we don't test for that.
82         if [ -f "${PKG_INSTALL_ROOT}/etc/ssh_host_dsa_key" ]; then
83            mv ${PKG_INSTALL_ROOT}/etc/ssh_host_dsa_key ${CONFDIR}
84         elif [ -f "${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_dsa_key" ]; then
85            mv ${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_dsa_key ${CONFDIR}
86         else
87            ${DESTBIN}/ssh-keygen -d -f ${CONFDIR}/ssh_host_dsa_key -N ''
88         fi
89     else
90         echo "Using existing DSA public/private host key pair for SSH-2."
91     fi
92 else
93     echo "Performing an \"update\" installation of OpenSSH."
94     ### Okay, this part *is* an update install...so we need to ensure
95     ### we don't overwrite any of the existing files.
96
97     ### Install init script and create symlinks
98     if [ ! -f ${PKG_INSTALL_ROOT}/etc/init.d/sshd ]; then
99         echo "Installing init script in  ${PKG_INSTALL_ROOT}/etc/init.d/sshd"
100        $INSTALLF $PKGINST ${PKG_INSTALL_ROOT}/etc/init.d/sshd || exit 2
101         cp -p ${CONFDIR}/sshd-initscript ${PKG_INSTALL_ROOT}/etc/init.d/sshd
102         chown root:root ${PKG_INSTALL_ROOT}/etc/init.d/sshd
103         chmod 500 ${PKG_INSTALL_ROOT}/etc/init.d/sshd
104     fi
105     if [ ! -r ${PKG_INSTALL_ROOT}/etc/rc2.d/S72local_sshd ]; then
106        $INSTALLF $PKGINST ${PKG_INSTALL_ROOT}/etc/rc2.d/S72local_sshd=/etc/init.d/sshd s || exit 2
107     fi
108     if [ ! -r ${PKG_INSTALL_ROOT}/etc/rc2.d/K30local_sshd ]; then
109        $INSTALLF $PKGINST /etc/rc0.d/K30local_sshd=/etc/init.d/sshd s || exit 2
110     fi 
111
112     ### The initial package installation leaves default versions of
113     ### ssh_prng_cmds, ssh_config, and sshd_config in ${CONFDIR}.  Now
114     ### we need to decide whether to install them.  Since this is
115     ### an update install, we only install the new files if the old
116     ### files somehow don't exist.
117     NEWCONF=0
118     if [ ! -r "${CONFDIR}/ssh_prng_cmds" ]; then
119        instbackup ${CONFDIR} ssh_prng_cmds
120         NEWCONF=1
121     fi
122     if [ ! -r "${CONFDIR}/ssh_config" ]; then
123        instbackup ${CONFDIR} ssh_config
124         NEWCONF=1
125     fi
126     if [ ! -r "${CONFDIR}/ssh_config" ]; then
127        instbackup ${CONFDIR} sshd_config
128         NEWCONF=1
129     fi
130     if [ ! -r "${CONFDIR}/primes" ]; then
131        instbackup ${CONFDIR} primes
132         NEWCONF=1
133     fi
134     if [ $NEWCONF -eq 0 ]; then
135         echo "Your existing SSH configuration files have not been altered."
136     else
137         echo "Your other existing SSH configuration files have not been altered."
138     fi
139
140     ### If no existing sshd_config and host key, then create
141     if [ ! -f "${CONFDIR}/ssh_host_key" ]; then
142         echo "Creating new RSA public/private host key pair for SSH-1."
143         $INSTALLF $PKGINST ${CONFDIR}/ssh_host_key
144         $INSTALLF $PKGINST ${CONFDIR}/ssh_host_key.pub
145         ### If there is *anything* there then leave it, otherwise look
146         ### in some reasonable alternate locations before giving up.
147         ### It's worth spending some extra time looking for the old one
148         ### to avoid a bunch of "host identification has changed" warnings.
149         ### Note that some old keys from the commercial SSH might not
150         ### be compatible, but we don't test for that.
151         if [ -f "${PKG_INSTALL_ROOT}/etc/ssh_host_key" ]; then
152            mv ${PKG_INSTALL_ROOT}/etc/ssh_host_key ${CONFDIR}
153         elif [ -f "${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_key" ]; then
154            mv ${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_key ${CONFDIR}
155         else
156            ${DESTBIN}/ssh-keygen -b 1024 -f ${CONFDIR}/ssh_host_key -N ''
157         fi
158     else
159         echo "Using existing RSA public/private host key pair for SSH-1."
160     fi
161     if [ ! -f "${CONFDIR}/ssh_host_dsa_key" ]; then
162         echo "Creating new DSA public/private host key pair for SSH-2."
163         $INSTALLF $PKGINST ${CONFDIR}/ssh_host_dsa_key
164         $INSTALLF $PKGINST ${CONFDIR}/ssh_host_dsa_key.pub
165         ### If there is *anything* there then leave it, otherwise look
166         ### in some reasonable alternate locations before giving up.
167         ### It's worth spending some extra time looking for the old one
168         ### to avoid a bunch of "host identification has changed" warnings.
169         ### Note that some old keys from the commercial SSH2 might not
170         ### be compatible, but we don't test for that.
171         if [ -f "${PKG_INSTALL_ROOT}/etc/ssh_host_dsa_key" ]; then
172            mv ${PKG_INSTALL_ROOT}/etc/ssh_host_dsa_key ${CONFDIR}
173         elif [ -f "${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_dsa_key" ]; then
174            mv ${PKG_INSTALL_ROOT}/usr/local/etc/ssh_host_dsa_key ${CONFDIR}
175         else
176            ${DESTBIN}/ssh-keygen -d -f ${CONFDIR}/ssh_host_dsa_key -N ''
177         fi
178     else
179         echo "Using existing DSA public/private host key pair for SSH-2."
180     fi
181 fi
182
183 if [ ! -d %%PIDDIR%% ]; then
184     $INSTALLF $PKGINST %%PIDDIR%%
185     mkdir -p %%PIDDIR%%
186     chown root:sys %%PIDDIR%%
187     chmod 755 %%PIDDIR%%
188 fi
189
190 $INSTALLF -f $PKGINST || exit 2
191
192 if [ "X${PKG_INSTALL_ROOT}" = "X" ]; then
193    ### We're doing a local install, rather than an install for
194    ### old-style diskless clients.
195    echo "Stopping any current sshd process, and then starting the new sshd."
196    /etc/init.d/sshd stop
197    /etc/init.d/sshd start
198 else
199    echo "Not restarting sshd, since this appears to be a remote install"
200    echo "for support of diskless clients."
201 fi
202
203 exit 0
This page took 0.06517 seconds and 5 git commands to generate.