3 %define release 8.planetlab%{?date:.%{date}}
6 Packager: PlanetLab Central <support@planet-lab.org>
7 Distribution: PlanetLab 3.0
8 URL: http://cvs.planet-lab.org/cvs/pl_sshd
10 Summary: SSH server config for PlanetLab
14 Requires: autofs, openssh-server
16 Group: System Environment/Base
17 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
19 Source0: %{name}-%{version}.tar.bz2
22 SSH server configuration for PlanetLab nodes. Configures an automounted
23 directory as source for authorized_keys files and points sshd to that
33 mkdir -p $RPM_BUILD_ROOT/var/pl_sshd/keys
34 install -D -m 0755 pl_sshd.sh $RPM_BUILD_ROOT/usr/local/sbin/pl_sshd.sh
35 install -D -m 0755 pl_sshd $RPM_BUILD_ROOT/etc/init.d/pl_sshd
36 install -D -m 0755 auto.pl_sshd.py $RPM_BUILD_ROOT/etc/auto.pl_sshd
39 rm -rf $RPM_BUILD_ROOT
43 %dir /var/pl_sshd/keys
44 %attr(0755,root,root) /usr/local/sbin/pl_sshd.sh
45 %attr(0755,root,root) /etc/init.d/pl_sshd
46 %attr(0755,root,root) /etc/auto.pl_sshd
52 # 1 = install, 2 = upgrade/reinstall
54 # create the magic directory for automount
55 keydir=/var/pl_sshd/keys
57 # add appropriate entry to auto.master
58 auto_master=/etc/auto.master
59 auto_master_entry="$keydir /etc/auto.pl_sshd"
60 grep -qF "$auto_master_entry" $auto_master || \
61 echo $auto_master_entry >>$auto_master
64 # use the sysconfig file to tell our system sshd to look in the
65 # magic location for authorized_keys files
67 sysconfig_sshd=/etc/sysconfig/sshd
68 [ -r $sysconfig_sshd ] && \
69 mv $sysconfig_sshd $sysconfig_sshd.pl_sshd
70 echo "OPTIONS='-o \"AuthorizedKeysFile $keydir/%u/authorized_keys\"'" \
73 # link sshd pam config to pl_sshd so that we can actually login
74 pam_pl_sshd=/etc/pam.d/pl_sshd
75 [ -r $pam_pl_sshd ] || ln -s sshd $pam_pl_sshd
77 chkconfig --add pl_sshd
79 if [[ "$PL_BOOTCD" != "1" ]]; then
81 # don't try to start/restart various things automatically,
82 # it's too ugly (particularly if we're upgrading while
86 echo "You need to manually restart autofs and sshd, and"
87 echo "start the pl_sshd (ssh on port 806) service."
88 echo "Make sure you know what you're doing, particularly"
89 echo "if you're making this change over an ssh connection."
95 # 0 = erase, 1 = upgrade
98 # stop pl_sshd, remove it from rcX.d init dirs, remove link
99 # to sshd's pam config
101 [ "$PL_BOOTCD" = "1" ] || /etc/init.d/pl_sshd stop || :
102 chkconfig --del pl_sshd
103 rm -f /etc/pam.d/pl_sshd
106 # remove funky config options for sshd (so that when we restart
107 # things will operate normally i.e., without automount magic)
109 rm /etc/sysconfig/sshd
110 if [ "$PL_BOOTCD" != "1" ]; then
112 echo "You need to manually restart sshd."
113 echo "Make sure you know what you're doing, particularly"
114 echo "if you're making this change over an ssh connection."
119 # stop automounter, remove entry from auto.master, restart if
122 [ "$PL_BOOTCD" != "1" ] && /etc/init.d/autofs stop
123 auto_master=/etc/auto.master
124 mv $auto_master $auto_master.pl_sshd.preun
125 sed -e '\,^/var/pl_sshd/keys,d' $auto_master.pl_sshd.preun \
128 [ "$PL_BOOTCD" != "1" ] && /etc/init.d/autofs start
136 * Thu Apr 7 2005 Steve Muir <smuir@cs.princeton.edu>
137 - convert auto.pl_sshd to a python script (simpler and less error-prone)
139 * Mon Dec 1 2003 Steve Muir <smuir@cs.princeton.edu>
140 - initial creation from files in sidewinder repository