X-Git-Url: http://git.onelab.eu/?p=pl_sshd.git;a=blobdiff_plain;f=pl_sshd.spec;h=b7408f195724065b8f24c06819ed7f59e9f80f13;hp=2ffe6fc4cd7d04a10d2eb54caa35cc29b498e90c;hb=HEAD;hpb=a7813d33924a3e557c6347d81f005c5002dcb269 diff --git a/pl_sshd.spec b/pl_sshd.spec index 2ffe6fc..b7408f1 100644 --- a/pl_sshd.spec +++ b/pl_sshd.spec @@ -1,15 +1,32 @@ +# +# $Id$ +# +%define url $URL$ + +%define name pl_sshd +%define version 1.0 +%define taglevel 11 + +%define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}} + +Vendor: PlanetLab +Packager: PlanetLab Central +Distribution: PlanetLab %{plrelease} +URL: %(echo %{url} | cut -d ' ' -f 2) + Summary: SSH server config for PlanetLab -Name: pl_sshd -Version: 0.1 -Release: 1 -Requires: automount, sshd -Copyright: GPL -URL: http://www.planet-lab.org +Name: %{name} +Version: %{version} +Release: %{release} +Requires: openssh-server +License: GPL Group: System Environment/Base -Source: %{_fullname}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot + +Source0: %{name}-%{version}.tar.bz2 %description -SSH server configuration for PlanetLab nodes. Configures an automounted +SSH server configuration for PlanetLab nodes. Configures an automounted directory as source for authorized_keys files and points sshd to that directory. @@ -20,37 +37,78 @@ directory. %install -install -m 0755 -o root -g root pl_sshd.sh $RPM_BUILD_ROOT/usr/local/sbin -install -m 0755 -o root -g root pl_sshd $RPM_BUILD_ROOT/etc/init.d -install -m 0755 -o root -g root auto.pl_sshd $RPM_BUILD_ROOT/etc -echo "OPTIONS='-p 806'" >$RPM_BUILD_ROOT/etc/sysconfig/sshd +mkdir -p $RPM_BUILD_ROOT/var/pl_sshd/keys +install -D -m 0755 pl_sshd.sh $RPM_BUILD_ROOT/usr/local/sbin/pl_sshd +install -D -m 0755 pl_sshd $RPM_BUILD_ROOT/etc/init.d/pl_sshd %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root) -%attr(0755,root,root) /usr/local/sbin/pl_sshd.sh +%dir /var/pl_sshd/keys +%attr(0755,root,root) /usr/local/sbin/pl_sshd %attr(0755,root,root) /etc/init.d/pl_sshd -%attr(0755,root,root) /etc/auto.pl_sshd %pre %post -RUNLEVEL=`/sbin/runlevel` - -if [ "$1" -ge 1 ]; then - chkconfig --add pl_sshd - - if [[ "$RUNLEVEL" != "unknown" ]]; then - /etc/init.d/pl_sshd restart - fi +# 1 = install, 2 = upgrade/reinstall +if [ $1 -ge 1 ]; then + # link sshd pam config to pl_sshd so that we can actually login + pam_pl_sshd=/etc/pam.d/pl_sshd + [ -r $pam_pl_sshd ] || ln -s sshd $pam_pl_sshd + + chkconfig --add pl_sshd + + if [ "$1" -gt "1" ]; then # upgrading + # + # remove funky config options for sshd (so that when we restart + # things will operate normally i.e., without automount magic) + # + rm -f /etc/sysconfig/sshd + + # + # stop automounter, remove entry from auto.master, restart if + # necessary + # + [ "$PL_BOOTCD" != "1" ] && /etc/init.d/autofs stop + auto_master=/etc/auto.master + orig=$auto_master + backup=$auto_master.pl_sshd.post + mv $orig $backup + sed -e '\,^/var/pl_sshd/keys,d' $backup > $orig && rm $backup || \ + mv $backup $orig + + [ "$PL_BOOTCD" != "1" ] && /etc/init.d/autofs start + fi + + if [[ "$PL_BOOTCD" != "1" ]]; then + # + # don't try to start/restart various things automatically, + # it's too ugly (particularly if we're upgrading while + # connected over ssh) + # + echo + echo "You need to manually restart autofs and sshd, and" + echo "start the pl_sshd (ssh on port 806) service." + echo "Make sure you know what you're doing, particularly" + echo "if you're making this change over an ssh connection." + echo + fi fi %preun -if [ "$1" = 0 ]; then +# 0 = erase, 1 = upgrade +if [ $1 -eq 0 ]; then + # + # stop pl_sshd, remove it from rcX.d init dirs, remove link + # to sshd's pam config + # + [ "$PL_BOOTCD" = "1" ] || /etc/init.d/pl_sshd stop || : chkconfig --del pl_sshd + rm -f /etc/pam.d/pl_sshd fi @@ -58,30 +116,19 @@ fi %changelog -* Tue Nov 25 2003 Steve Muir -- fixed a couple of Node Manager bugs: - - bootstrapping pl_conf state when boot server unreachable - - canonical hostnames should be all lower-case -- fixup UID and GID of users within vservers to match real world -- enable access to dynamic slices through port 806 sshd - -* Sun Oct 26 2003 Aaron Klingaman -- readded start/stop only when runlevel is known, for install purposes - -* Thu Oct 16 2003 Jeff Sedayao -- Fixed bug in pl_conf - it was getting negative wait times. Also added - duke4 as a trusted user. +* Fri May 09 2008 Stephen Soltesz - pl_sshd-1.0-11 +- -* Tue Oct 8 2003 Jeff Sedayao -- Removed special fetch login from init function, updated release +* Wed Nov 2 2005 Steve Muir +- don't fanny around using the automounter to access ssh keys in vservers, + pl_conf now writes them into the normal locations -* Tue Oct 7 2003 Jeff Sedayao -- Moved special fetch login into main loop, fix account deletion - problem +* Wed Oct 12 2005 Steve Muir +- fix pl_sshd script name and argv[0] to satisfy re-exec requirements -* Tue Oct 7 2003 Aaron Klingaman -- Commented out code to start pl_* upon install +* Thu Apr 7 2005 Steve Muir +- convert auto.pl_sshd to a python script (simpler and less error-prone) -* Wed Aug 26 2003 Tammo Spalink -- Initial build. +* Mon Dec 1 2003 Steve Muir +- initial creation from files in sidewinder repository