X-Git-Url: http://git.onelab.eu/?p=pl_sshd.git;a=blobdiff_plain;f=pl_sshd.spec;h=b7408f195724065b8f24c06819ed7f59e9f80f13;hp=8729eab6ad7d32b5ea0312f0e17ef6ebe9006a17;hb=HEAD;hpb=a9f59b38e4836c95ffca8edf09562bb9358a82ad diff --git a/pl_sshd.spec b/pl_sshd.spec index 8729eab..b7408f1 100644 --- a/pl_sshd.spec +++ b/pl_sshd.spec @@ -1,19 +1,35 @@ +# +# $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: 1.0 -Release: 1 -Requires: autofs, openssh-server -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. -$Header: /cvs/pl_sshd/pl_sshd.spec,v 1.3 2003/12/01 21:22:53 sjm-pl_sshd Exp $. %prep %setup @@ -21,93 +37,78 @@ $Header: /cvs/pl_sshd/pl_sshd.spec,v 1.3 2003/12/01 21:22:53 sjm-pl_sshd Exp $. %install -mkdir -p $RPM_BUILD_ROOT/usr/local/sbin -mkdir -p $RPM_BUILD_ROOT/etc/{sysconfig,init.d} mkdir -p $RPM_BUILD_ROOT/var/pl_sshd/keys -install -m 0755 pl_sshd.sh $RPM_BUILD_ROOT/usr/local/sbin -install -m 0755 pl_sshd $RPM_BUILD_ROOT/etc/init.d -install -m 0755 auto.pl_sshd $RPM_BUILD_ROOT/etc +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` +# 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 -if [ "$1" -ge 1 ]; then - # create the magic directory for automount - keydir=/var/pl_sshd/keys - [ -d $keydir ] || mkdir -p $keydir + chkconfig --add pl_sshd - # add appropriate entry to auto.master + 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 - auto_master_entry="$keydir /etc/auto.pl_sshd" - grep -qF "$auto_master_entry" $auto_master || \ - echo $auto_master_entry >>$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 # - # use the sysconfig file to tell our system sshd to look in the - # magic location for authorized_keys files + # don't try to start/restart various things automatically, + # it's too ugly (particularly if we're upgrading while + # connected over ssh) # - sysconfig_sshd=/etc/sysconfig/sshd - [ -r $sysconfig_sshd ] && \ - mv $sysconfig_sshd $sysconfig_sshd.pl_sshd - echo "OPTIONS='-o \"AuthorizedKeysFile $keydir/%u/authorized_keys\"'" \ - >$sysconfig_sshd - - # 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 [[ "$RUNLEVEL" != "unknown" ]]; then - /etc/init.d/autofs restart - /etc/init.d/sshd restart - /etc/init.d/pl_sshd start - fi + 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 -RUNLEVEL=`/sbin/runlevel` - -if [ "$1" -ge "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 # - [ "$RUNLEVEL" != "unknown" ] && /etc/init.d/pl_sshd stop + [ "$PL_BOOTCD" = "1" ] || /etc/init.d/pl_sshd stop || : chkconfig --del pl_sshd rm -f /etc/pam.d/pl_sshd - - # - # remove funky config options for sshd (so that when we restart - # things will operate normally i.e., without automount magic), - # then restart - # - rm /etc/sysconfig/sshd - [ "$RUNLEVEL" != "unknown" ] && /etc/init.d/sshd restart - - # - # stop automounter, remove entry from auto.master, restart if - # necessary - # - [ "$RUNLEVEL" != "unknown" ] && /etc/init.d/autofs stop - auto_master=/etc/auto.master - mv $auto_master $auto_master.pl_sshd.preun - sed -e '\,^/var/pl_sshd/keys,d' $auto_master.pl_sshd.preun \ - >$auto_master - - [ "$RUNLEVEL" != "unknown" ] && /etc/init.d/autofs start fi @@ -115,6 +116,19 @@ fi %changelog +* Fri May 09 2008 Stephen Soltesz - pl_sshd-1.0-11 +- + +* 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 + +* Wed Oct 12 2005 Steve Muir +- fix pl_sshd script name and argv[0] to satisfy re-exec requirements + +* Thu Apr 7 2005 Steve Muir +- convert auto.pl_sshd to a python script (simpler and less error-prone) + * Mon Dec 1 2003 Steve Muir - initial creation from files in sidewinder repository