Installing Proftpd on Suse Linux 11.0 Rumi, May 24, 2009 It was a really time consuming to make a workable daemon of proftp server. Surprisingly, this daemon is not a easily setup by other linux disto like FC or CentOS or RHL. Anyway, the purpose on installing this is to make it work with Webmin+Virtualmin package. So, this installation will be handy for Webmin/Virtualmin guys! Remember, this is a manual installaiton. So, let’s start! 1. On konsole type yast2 -i libcap libcap-devel 2. Now type- cd /tmp/ wget –passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.2rc4.tar.gz tar xvfz proftpd-1.3.2rc4.tar.gz cd proftpd-1.3.2rc4/ ./configure –sysconfdir=/etc make make install cd .. rm -fr proftpd-1.3.2rc4* 3. Now create a file at /etc/init.d/proftpd and put the following code in- #! /bin/sh # Copyright (c) 2000-2001 SuSE GmbH Nuernberg, Germany. # All rights reserved. # # Original author: Marius Tomaschewski <mt@suse.de> # # Slightly modified in 2003 for use with SuSE Linux 8.1, # by http://www.learnlinux.co.uk/ # # Slightly modified in 2005 for use with SuSE Linux 9.2, # by Falko Timme # # /etc/init.d/proftpd # ### BEGIN INIT INFO # Provides: proftpd # Required-Start: $network $remote_fs $syslog $named # Required-Stop: # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Starts ProFTPD server ### END INIT INFO # Determine the base and follow a runlevel link name. base=${0##*/} link=${base#*[SK][0-9][0-9]} # Force execution if not called by a runlevel directory. test $link = $base && START_PROFTPD=yes # Modified by learnlinux.co.uk test “$START_PROFTPD” = yes || exit 0 # Modified by learnlinux.co.uk # Return values acc. to LSB for all commands but # status (see below): # # 0 – success # 1 – generic or unspecified error # 2 – invalid or excess argument(s) # 3 – unimplemented feature (e.g. “reload”) # 4 – insufficient privilege # 5 – program is not installed # 6 – program is not configured # 7 – program is not running proftpd_cfg=”/etc/proftpd.conf” proftpd_bin=”/usr/local/sbin/proftpd” proftpd_pid=”/usr/local/var/proftpd.pid” [ -r $proftpd_cfg ] || exit 6 [ -x $proftpd_bin ] || exit 5 # Source status functions . /etc/rc.status # First reset status of this service rc_reset case “$1” in start) echo -n “Starting ProFTPD Server: ” test -f /etc/shutmsg && rm -f /etc/shutmsg /sbin/startproc $proftpd_bin rc_status -v ;; stop) echo -n “Shutting down ProFTPD Server: ” test -x /usr/local/sbin/ftpshut && /usr/local/sbin/ftpshut now && sleep 1 /sbin/killproc -TERM $proftpd_bin test -f /etc/shutmsg && rm -f /etc/shutmsg rc_status -v ;; restart) ## If first returns OK call the second, if first or ## second command fails, set echo return value. $0 stop $0 start rc_status ;; try-restart) ## Stop the service and if this succeeds (i.e. the ## service was running before), start it again. ## Note: not (yet) part of LSB (as of 0.7.5) $0 status >/dev/null && $0 restart rc_status ;; reload|force-reload) ## Exclusive possibility: Some services must be stopped ## and started to force a new load of the configuration. echo -n “Reload ProFTPD Server: ” /sbin/killproc -HUP $proftpd_bin rc_status -v ;; status) # Status has a slightly different for the status command: # 0 – service running # 1 – service dead, but /var/run/ pid file exists # 2 – service dead, but /var/lock/ lock file exists # 3 – service not running echo -n “Checking for ProFTPD Server: ” checkproc $proftpd_bin rc_status -v ;; probe) ## Optional: Probe for the necessity of a reload, ## give out the argument which is required for a reload. [ $proftpd_cfg -nt $proftpd_pid ] && echo reload ;; *) echo “Usage: $0 {start|stop|status|restart|reload|try-restart|probe}” exit 1 ;; esac # Set an exit status. rc_exit 4. Then run- chmod 755 /etc/init.d/proftpd chkconfig –add proftpd 5. Now start ftp daemon by issuing- /etc/init.d/proftpd start 6. Go to Proftp Server module in WEBMIN. and click of “Module Config” on top left corner and update the following- Path to ProFTPD executable- “/usr/local/sbin/proftpd” 7. And last but not the least, make SURE that “Path to proFTPD PID” is set to “none”. Save it and restart the daemon. Walla! you’re done… rest you should know, how to make this service on boot time start. Administrations Configurations (Linux)