Hello community,
here is the log from the commit of package proftpd.12029 for
openSUSE:Leap:15.1:Update checked in at 2020-03-01 18:13:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.1:Update/proftpd.12029 (Old)
and /work/SRC/openSUSE:Leap:15.1:Update/.proftpd.12029.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "proftpd.12029"
Sun Mar 1 18:13:11 2020 rev:1 rq:779152 version:1.3.6c
Changes:
--------
New Changes file:
--- /dev/null 2019-12-19 10:12:34.003146842 +0100
+++
/work/SRC/openSUSE:Leap:15.1:Update/.proftpd.12029.new.26092/proftpd.changes
2020-03-01 18:13:13.108209284 +0100
@@ -0,0 +1,694 @@
+-------------------------------------------------------------------
+Mon Feb 24 17:06:07 UTC 2020 - [email protected]
+
+- fix for boo#1164572 (CVE-2020-9272, gh#902)
+- fix for boo#1164574 (CVE-2020-9273, gh#903)
+- update to 1.3.6c
+ * Fixed regression in directory listing latency (Issue #863).
+ * Detect OpenSSH-specific formatted SFTPHostKeys, and log hint for
+ converting them to supported format.
+ * Fixed use-after-free vulnerability during data transfers (Issue #903).
+ * Fixed out-of-bounds read in mod_cap by updating the bundled libcap
+ (Issue #902).
+- remove obsolete proftpd-tls-crls-issue859.patch
+- rebase patches
+ * proftpd-ftpasswd.patch
+ * proftpd-no_BuildDate.patch
+ * proftpd_env-script-interpreter.patch
+
+-------------------------------------------------------------------
+Sat Feb 1 17:25:05 UTC 2020 - [email protected]
+
+- cleanup tls.template
+ * remove deprecated NoCertRequest from TLSOptions
+
+-------------------------------------------------------------------
+Sat Dec 28 20:45:30 UTC 2019 - [email protected]
+
+- fix changes file
+ * add missing info about boo#1155834
+ * add missing info about boo#1154600
+- fix for boo#1156210
+ * GeoIP has been discontinued by Maxmind
+ * remove module build for geoip
+ see https://support.maxmind.com/geolite-legacy-discontinuation-notice/
+- fix for boo#1157803 (CVE-2019-19269), boo#1157798 (CVE-2019-19270)
+ * add upstream patch proftpd-tls-crls-issue859.patch
+
+-------------------------------------------------------------------
+Sun Nov 3 22:25:28 UTC 2019 - [email protected]
+
+- fix for boo#1154600 (CVE-2019-18217, gh#846)
+- update to 1.3.6b
+ * Fixed pre-authentication remote denial-of-service issue (Issue #846).
+ * Backported fix for building mod_sql_mysql using MySQL 8 (Issue #824).
+- update to 1.3.6a
+ * Fixed symlink navigation (Bug#4332).
+ * Fixed building of mod_sftp using OpenSSL 1.1.x releases (Issue#674).
+ * Fixed SITE COPY honoring of <Limit> restrictions (Bug#4372).
+ * Fixed segfault on login when using mod_sftp + mod_sftp_pam (Issue#656).
+ * Fixed restarts when using mod_facl as a static module
+- remove obsolete proftpd-CVE-2019-12815.patch
+ * included in 1.3.6a (Bug#4372)
+- add proftpd_env-script-interpreter.patch
+ * RPMLINT fix for env-script-interpreter (Badness: 9)
+
+-------------------------------------------------------------------
+Sat Nov 2 18:12:51 UTC 2019 - Martin Hauke <[email protected]>
+
+- fix for boo#1155834
+ * Add missing Requires(pre): group(ftp) for Leap 15 and Tumbleweed
+ * Add missing Requires(pre): user(ftp) for Leap 15 and Tumbleweed
+
+-------------------------------------------------------------------
+Wed Oct 2 15:01:11 UTC 2019 - Bernhard Wiedemann <[email protected]>
+
+- Update proftpd-dist.patch to use pam_keyinit.so (boo#1144056)
+
+-------------------------------------------------------------------
+Fri Aug 2 14:52:48 UTC 2019 - [email protected]
+
+- fix for boo#1142281 (CVE-2019-12815, bpo#4372)
+ arbitrary file copy in mod_copy allows for remote code execution
+ and information disclosure without authentication
+- add patch
+ * proftpd-CVE-2019-12815.patch
+ taken from:
+ - http://bugs.proftpd.org/show_bug.cgi?id=4372
+ -
https://github.com/proftpd/proftpd/commit/a73dbfe3b61459e7c2806d5162b12f0957990cb3
+
+-------------------------------------------------------------------
+Mon Jul 1 13:50:01 UTC 2019 - [email protected]
+
+- update changes file
+ * add missing info about bugzilla 1113041
+
+-------------------------------------------------------------------
+Tue Mar 26 11:35:53 UTC 2019 - Jan Engelhardt <[email protected]>
+
+- Fix the Factory build: select the appropriate OpenSSL version
+ to build with. (fix for boo#1113041)
+
+-------------------------------------------------------------------
+Wed Mar 20 18:46:47 UTC 2019 - Jan Engelhardt <[email protected]>
+
+- Reduce hard dependency on systemd to only that which is
+ necessary for building and installation.
+- Modernize RPM macro use (%make_install, %tmpfiles_create).
+- Strip emphasis from description and trim other platform mentions.
+
+-------------------------------------------------------------------
+Wed Jul 11 08:05:29 UTC 2018 - [email protected]
+
+- update to 1.3.6
+ * Support for using Redis for caching, logging; see the doc/howto/Redis.html
+ documentation.
+ * Fixed mod_sql_postgres SSL support (Issue #415).
+ * Support building against LibreSSL instead of OpenSSL (Issue #361).
+ * Better support on AIX for login restraictions (Bug #4285).
+ * TimeoutLogin (and other timeouts) were not working properly for SFTP
+ connections (Bug#4299).
+ * Handling of the SIGILL and SIGINT signals, by the daemon process, now
causes
+ the child processes to be terminated as well (Issue #461).
+ * RPM .spec file naming changed to conform to Fedora guidelines.
+ * Fix for "AllowChrootSymlinks off" checking each component for symlinks
+ (CVE-2017-7418).
+ -New Modules:
+ * mod_redis, mod_tls_redis, mod_wrap2_redis
+ With Redis now supported as a caching mechanism, similar to Memcache,
+ there are now Redis-using modules: mod_redis (for configuring the Redis
+ connection information), mod_tls_redis (for caching SSL sessions and
+ OCSP information using Redis), and mod_wrap2_redis (for using ACLs stored
+ in Redis).
+ -Changed Modules:
+ * mod_ban
+ The mod_ban module's BanCache directive can now use Redis-based caching;
+ see doc/contrib/mod_ban.html#BanCache.
+ -New Configuration Directives
+ * SQLPasswordArgon2, SQLPasswordScrypt
+ The key lengths for Argon2 and Scrypt-based passwords are now
configurable
+ via these new directives; previously, the key length had been hardcoded
+ to be 32 bytes, which is not interoperable with all other implementations
+ (Issue #454).
+ -Changed Configuration Directives
+ * AllowChrootSymlinks
+ When "AllowChrootSymlinks off" was used, only the last portion of the
+ DefaultRoot path would be checked to see if it was a symlink. Now,
+ each component of the DefaultRoot path will be checked to see if it is
+ a symlink when "AllowChrootSymlinks off" is used.
+ * Include
+ The Include directive can now be used within a <Limit> section, e.g.:
+ <Limit LOGIN>
+ Include /path/to/allowed.txt
+ DenyAll
+ </Limit>
+ -API Changes
+ * A new JSON API has been added, for use by third-party modules.
+- remove obsolete proftpd_include-in-limit-section.patch
+- rebase patches
+ * proftpd-ftpasswd.patch
+ * proftpd-no_BuildDate.patch
+
+-------------------------------------------------------------------
+Tue Jul 10 11:57:58 UTC 2018 - [email protected]
+
+- update to 1.3.5e
+ * Fixed SFTP issue with [email protected] digest/MAC.
+ * Fixed regression with mod_sftp rekeying.
+ * Backported fix for "AllowChrootSymlinks off" checking each component
+ for symlinks (CVE-2017-7418).
+- remove obsolete patch
+ * proftpd-AllowChrootSymlinks.patch (now included)
+- rebase patches
+ * proftpd-dist.patch
+ * proftpd-no_BuildDate.patch
+ * proftpd_include-in-limit-section.patch
+
+-------------------------------------------------------------------
+Fri Jul 21 04:43:44 UTC 2017 - [email protected]
+
+- Sort SHARED_MODS list to fix build compare (boo#1041090)
+
+-------------------------------------------------------------------
+Fri Jun 16 08:28:42 UTC 2017 - [email protected]
+
+- Removed xinetd service
+
+-------------------------------------------------------------------
+Fri Apr 7 20:49:37 UTC 2017 - [email protected]
+
+- fix for boo#1032443 (CVE-2017-7418)
+ * AllowChrootSymlinks not enforced by replacing a path component
+ with a symbolic link
+ * add upstream commit (ecff21e0d0e84f35c299ef91d7fda088e516d4ed)
+ as proftpd-AllowChrootSymlinks.patch
+- fix proftpd-tls.template
+ * reduce TLS protocols to TLSv1.1 and TLSv1.2
+ * disable TLSCACertificateFile
+ * add TLSCertificateChainFile
+
+-------------------------------------------------------------------
+Thu Mar 23 15:05:22 UTC 2017 - [email protected]
+
+- Remove --with-pic, there are no static libs.
+- Replace %__-type macro indirections.
+- Replace old $RPM shell vars by macros.
+
+-------------------------------------------------------------------
++++ 497 more lines (skipped)
++++ between /dev/null
++++ and
/work/SRC/openSUSE:Leap:15.1:Update/.proftpd.12029.new.26092/proftpd.changes
New:
----
proftpd-1.3.6c.tar.gz
proftpd-1.3.6c.tar.gz.asc
proftpd-basic.conf.patch
proftpd-dist.patch
proftpd-ftpasswd.patch
proftpd-limit.template
proftpd-no_BuildDate.patch
proftpd-ssl.README
proftpd-strip.patch
proftpd-tls.template
proftpd.changes
proftpd.init
proftpd.keyring
proftpd.passwd
proftpd.service
proftpd.spec
proftpd.tmpfile
proftpd_env-script-interpreter.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ proftpd.spec ++++++
#
# spec file for package proftpd
#
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: proftpd
Summary: Configurable GPL-licensed FTP server software
# Please save your time and do not update to "rc" versions.
# We only accept updates for "STABLE" Versions
License: GPL-2.0-or-later
Group: Productivity/Networking/Ftp/Servers
Version: 1.3.6c
Release: 0
URL: http://www.proftpd.org/
Source0: ftp://ftp.proftpd.org/distrib/source/%{name}-%{version}.tar.gz
Source1:
ftp://ftp.proftpd.org/distrib/source/%{name}-%{version}.tar.gz.asc
Source11: %{name}.init
Source12: %{name}.passwd
Source13: %{name}.service
Source14: %{name}.tmpfile
Source15: %{name}.keyring
Source16: %{name}-tls.template
Source17: %{name}-limit.template
Source18: %{name}-ssl.README
#PATCH-FIX-openSUSE: pam, logrotate, xinet
Patch100: %{name}-dist.patch
#PATCH-FIX-openSUSE: provide a useful default config
Patch101: %{name}-basic.conf.patch
#PATCH-FIX: provide more info on usage ;)
Patch102: %{name}-ftpasswd.patch
#PATCH-FIX: fix strip
Patch103: %{name}-strip.patch
#PATCH-FIX-openSUSE: file-contains-date-and-time
Patch104: %{name}-no_BuildDate.patch
#RPMLINT-FIX-openSUSE: env-script-interpreter
Patch105: %{name}_env-script-interpreter.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
#BuildRequires: gpg-offline
BuildRequires: fdupes
BuildRequires: krb5-devel
BuildRequires: libacl-devel
BuildRequires: libattr-devel
#BuildRequires: libmemcached-devel
#BuildRequires: libGeoIP-devel
BuildRequires: mysql-devel
BuildRequires: ncurses-devel
BuildRequires: openldap2-devel
BuildRequires: pam-devel
BuildRequires: pkg-config
BuildRequires: postgresql-devel
BuildRequires: sqlite3-devel
BuildRequires: unixODBC-devel
BuildRequires: pkgconfig(libssl) < 1.1
Requires: logrotate
%if 0%{?lang_package:1} > 0
Recommends: %{name}-lang
%endif
%if 0%{?suse_version} >= 1210
BuildRequires: systemd-rpm-macros
%{?systemd_ordering}
%define has_systemd 1
%else
Requires(pre): %insserv_prereq
%endif
%if 0%{?suse_version} >= 1330
Requires(pre): group(ftp)
Requires(pre): user(ftp)
%endif
%description
ProFTPD is a configurable FTP daemon for Unix and Unix-like
operating systems.
%{?lang_package}
%package devel
Summary: Development files for ProFTPD
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
%description devel
This package contains Development files for ProFTPD
%package ldap
Summary: LDAP Module for ProFTPD
Group: Productivity/Networking/Ftp/Servers
Requires: %{name} = %{version}
%description ldap
This is the LDAP Module for ProFTPD
%package mysql
Summary: MySQL Module for ProFTPD
Group: Productivity/Networking/Ftp/Servers
Requires: %{name} = %{version}
%description mysql
This is the MySQL Module for ProFTPD
%package pgsql
Summary: PostgreSQL Module for ProFTPD
Group: Productivity/Networking/Ftp/Servers
Requires: %{name} = %{version}
%description pgsql
This is the PostgreSQL Module for ProFTPD
%package radius
Summary: Radius Module for ProFTPD
Group: Productivity/Networking/Ftp/Servers
Requires: %{name} = %{version}
%description radius
This is the Radius Module for ProFTPD
%package sqlite
Summary: SQLite Module for ProFTPD
Group: Productivity/Networking/Ftp/Servers
Requires: %{name} = %{version}
%description sqlite
This is the SQLite Module for ProFTPD
%package doc
Summary: Documentation for ProFTPD
Group: Documentation/HTML
Requires: %{name} = %{version}
%description doc
Here are Documentation for ProFTPD
%prep
#gpg_verify %{S:1}
%setup -q
rm README.AIX
#
%patch100
%patch101
%patch102
%patch103
%patch104
%patch105
%build
rm contrib/mod_wrap.c
rm contrib/mod_geoip.c
PROFTPD_SHARED_MODS="$(for spec_mod in $(find contrib -name mod_\*.c|sort); do
echo "$(basename ${spec_mod%%.c})"; done | tr '\n' ':' | sed -e 's|:$||')"
export CFLAGS="%{optflags} -D_GNU_SOURCE -DLDAP_DEPRECATED"
export CXXFLAGS="$CFLAGS"
%configure --disable-static \
--bindir=%{_sbindir} \
--libexecdir=%{_libdir}/%{name} \
--sysconfdir=%{_sysconfdir}/%{name} \
%if 0%{?has_systemd}
--localstatedir=/run/%{name} \
%else
--localstatedir=%{_localstatedir}/run/%{name} \
%endif
--enable-sendfile \
--enable-ctrls \
--enable-dso \
--enable-facl \
--enable-ipv6 \
--enable-nls \
--enable-openssl \
--with-lastlog \
--with-includes="%{_includedir}/mysql:%{_includedir}/pgsql" \
--with-shared="${PROFTPD_SHARED_MODS}" \
--disable-ident \
--disable-strip
# --enable-memcache \
make %{?_smp_mflags}
%install
%make_install INSTALL_USER=`id -un` INSTALL_GROUP=`id -gn`
install -D -m 0644 contrib/dist/rpm/ftp.pamd
%{buildroot}/%{_sysconfdir}/pam.d/%{name}
install -D -m 0644 contrib/dist/rpm/%{name}.logrotate
%{buildroot}/%{_sysconfdir}/logrotate.d/%{name}
#
rm -fv %{buildroot}/%{_libdir}/%{name}/*.{a,la}
# install ftpasswd
install -D -m 0755 contrib/ftpasswd %{buildroot}/%{_sbindir}/
# some needed dirs
install -D -m 0440 %{S:12} %{buildroot}/%{_sysconfdir}/%{name}/auth/passwd
install -D -m 0644 %{S:16}
%{buildroot}/%{_sysconfdir}/%{name}/conf.d/tls.template
install -D -m 0644 %{S:18} %{buildroot}/%{_sysconfdir}/%{name}/conf.d/README
install -D -m 0644 %{S:17}
%{buildroot}/%{_sysconfdir}/%{name}/includes/limit.template
install -D -m 0644 %{S:18} %{buildroot}/%{_sysconfdir}/%{name}/ssl/README
install -d -m 0750 %{buildroot}/var/log/%{name}
# systemd vs SysVinit
%if 0%{?has_systemd}
install -D -m 0644 %{S:13} %{buildroot}%{_unitdir}/%{name}.service
ln -sf %{_sbindir}/service %{buildroot}/%{_sbindir}/rc%{name}
# systemd need to create a tmp dir: /run/proftpd
install -D -m 0644 %{S:14} %{buildroot}%{_tmpfilesdir}/%{name}.conf
%else #SysVinit
install -D -m 0755 %{S:11} %{buildroot}/%{_sysconfdir}/init.d/%{name}
ln -sf %{_sysconfdir}/init.d/%{name} %{buildroot}/%{_sbindir}/rc%{name}
%endif
%fdupes -s %{buildroot}%{_sysconfdir}/%{name}
%find_lang %{name}
%pre
%if 0%{?has_systemd}
%service_add_pre %{name}.service
%endif
%preun
%if 0%{?has_systemd}
%service_del_preun %{name}.service
%else
%stop_on_removal %{name}
%endif
%post
%if 0%{?has_systemd}
%service_add_post %{name}.service
%tmpfiles_create %{_tmpfilesdir}/%{name}.conf
%else
%{fillup_and_insserv -f proftpd}
install -d %{_localstatedir}/run/%{name}
%endif
%postun
%if 0%{?has_systemd}
%service_del_postun %{name}.service
%else
%restart_on_update %{name}
%{insserv_cleanup}
%endif
%if 0%{?lang_package:1} > 0
%files lang -f %{name}.lang
%if 0%{?sles_version} == 11
%defattr(-,root,root)
%dir %{_datadir}/locale/bg_BG
%dir %{_datadir}/locale/bg_BG/LC_MESSAGES
%dir %{_datadir}/locale/ja_JP
%dir %{_datadir}/locale/ja_JP/LC_MESSAGES
%dir %{_datadir}/locale/ko_KR
%dir %{_datadir}/locale/ko_KR/LC_MESSAGES
%endif
%files
%else
%files -f %{name}.lang
%endif
%defattr(-,root,root)
%doc COPYING CREDITS ChangeLog NEWS README* RELEASE_NOTES
%doc contrib/README.*
%doc sample-configurations/*.conf
%dir %attr(0755,root,root) %{_sysconfdir}/%{name}/
%dir %attr(0750,ftp,ftp) %{_sysconfdir}/%{name}/auth/
%config(noreplace) %attr(0440,root,ftp) %{_sysconfdir}/%{name}/auth/passwd
%dir %attr(0755,root,root) %{_sysconfdir}/%{name}/conf.d/
%config %{_sysconfdir}/%{name}/conf.d/tls.template
%config %{_sysconfdir}/%{name}/conf.d/README
%dir %attr(0755,root,root) %{_sysconfdir}/%{name}/includes/
%config %{_sysconfdir}/%{name}/includes/limit.template
%config(noreplace) %attr(0640,root,root) %{_sysconfdir}/%{name}/%{name}.conf
%config %{_sysconfdir}/%{name}/PROFTPD-MIB.txt
%dir %attr(0700,ftp,ftp) %{_sysconfdir}/%{name}/ssl/
%config %{_sysconfdir}/%{name}/ssl/README
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
%config(noreplace) %{_sysconfdir}/pam.d/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/blacklist.dat
%config(noreplace) %{_sysconfdir}/%{name}/dhparams.pem
%dir %attr(0750,root,root) %{_localstatedir}/log/%{name}
%{_sbindir}/*
%{_mandir}/man?/*
%dir %attr(0755,root,root) %{_libdir}/%{name}/
%{_libdir}/%{name}/*.so
%exclude %{_libdir}/%{name}/mod_ldap.so
%exclude %{_libdir}/%{name}/mod_sql_mysql.so
%exclude %{_libdir}/%{name}/mod_sql_postgres.so
%exclude %{_libdir}/%{name}/mod_radius.so
%exclude %{_libdir}/%{name}/mod_sql_sqlite.so
%if 0%{?has_systemd}
%{_unitdir}/%{name}.service
%{_tmpfilesdir}/%{name}.conf
%ghost %dir /run/%{name}
%else
%{_sysconfdir}/init.d/%{name}
%endif
%files devel
%defattr(-,root,root)
%{_includedir}/%{name}
%{_libdir}/pkgconfig/%{name}.pc
%files ldap
%defattr(-,root,root)
%{_libdir}/%{name}/mod_ldap.so
%files mysql
%defattr(-,root,root)
%{_libdir}/%{name}/mod_sql_mysql.so
%files pgsql
%defattr(-,root,root)
%{_libdir}/%{name}/mod_sql_postgres.so
%files radius
%defattr(-,root,root)
%{_libdir}/%{name}/mod_radius.so
%files sqlite
%defattr(-,root,root)
%{_libdir}/%{name}/mod_sql_sqlite.so
%files doc
%defattr(-,root,root)
%doc doc/*.html doc/contrib doc/howto doc/modules
%changelog
++++++ proftpd-basic.conf.patch ++++++
Index: sample-configurations/basic.conf
===================================================================
--- sample-configurations/basic.conf.orig
+++ sample-configurations/basic.conf
@@ -3,19 +3,29 @@
# and a single anonymous login. It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.
-ServerName "ProFTPD Default Installation"
-ServerType standalone
-DefaultServer on
+ServerName "ProFTPD"
+ServerType standalone
+DefaultServer on
# Port 21 is the standard FTP port.
-Port 21
+Port 21
+
+# FireWall PortRange for PASV
+PassivePorts 40000 40999
+
+# Set DebugLevel to values between 0 and 9
+# default is 0
+DebugLevel 0
+
+# SystemLog -- Redirect syslogging to a file
+SystemLog /var/log/proftpd/proftpd.log
# Don't use IPv6 support by default.
-UseIPv6 off
+UseIPv6 off
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
-Umask 022
+Umask 022
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
@@ -23,43 +33,210 @@ Umask 022
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
-MaxInstances 30
+MaxInstances 30
# Set the user and group under which the server will run.
-User nobody
-Group nogroup
-
-# To cause every FTP user to be "jailed" (chrooted) into their home
-# directory, uncomment this line.
-#DefaultRoot ~
+User ftp
+Group ftp
-# Normally, we want files to be overwriteable.
-AllowOverwrite on
+# Some logging formats
+LogFormat default "%h %l %u %t \"%r\" %s %b"
+LogFormat auth "%v [%P] %h %t \"%r\" %s"
+LogFormat write "%h %l %u %t \"%r\" %s %b"
+
+# ------------------------------
+# Global Settings
+# ------------------------------
+<Global>
+
+ # ------------------------------
+ # Login
+ # ------------------------------
+
+ ServerIdent on "FTP server ready"
+ DeferWelcome on
+ #DisplayConnect /etc/proftpd/msg
+
+ <IfModule mod_ident.c>
+ IdentLookups off
+ </IfModule>
+ UseFtpUsers off
+ RequireValidShell off
+
+ TimeoutLogin 60
+ MaxLoginAttempts 3
+ #MaxClientsPerHost none
+ #MaxClientsPerUser 1 "Only one connection at a time."
+
+ # ------------------------------
+ # Authentication
+ # ------------------------------
+
+ ### PAM Authentication
+ # AuthPAM: default: on
+ AuthPAM off
+
+ # changed AuthPAMConfig file
+ AuthPAMConfig proftpd
+ ### PAM Authentication
+
+ AuthUserFile /etc/proftpd/auth/passwd
+ AuthGroupFile /etc/group
+
+ ### order of auth modules
+ #AuthOrder mod_auth_unix.c mod_auth_file.c
+ AuthOrder mod_auth_file.c
+
+ # ------------------------------
+ # Post-Login
+ # ------------------------------
+
+ DisplayLogin welcome.msg
+ DisplayChdir .message
+ AllowOverride off
+
+ TimeoutIdle 600
+ TimeoutNoTransfer 900
+ TimeoutStalled 300
+ TimeoutSession 3600
+
+ # ------------------------------
+ # Session
+ # ------------------------------
+
+ # To cause every FTP user to be "jailed" (chrooted) into their home
+ # directory, uncomment this line.
+ DefaultRoot ~ web,!users
+
+ DenyFilter \*.*/
+ ListOptions "-A +R" strict
+ UseGlobbing off
+
+ ShowSymlinks on
+ TimesGMT on
+
+ # ------------------------------
+ # Up- & Download
+ # ------------------------------
+
+ # having to delete before uploading is a pain ;)
+ AllowOverwrite on
+ AllowRetrieveRestart on
+ HiddenStores on
+ DeleteAbortedStores on
+ #AllowStoreRestart off # is contrary to "DeleteAbortedStores"
+
+ # ------------------------------
+ # Logging
+ # ------------------------------
+
+ WtmpLog off
+ TransferLog /var/log/proftpd/xferlog
+
+ # Record all logins
+ ExtendedLog /var/log/proftpd/auth.log AUTH auth
+
+ # Logging file/dir access
+ ExtendedLog /var/log/proftpd/access.log WRITE,READ write
+
+ # Paranoia logging level....
+ ExtendedLog /var/log/proftpd/paranoid.log ALL default
+
+ # SQLLogFile
+ #SQLLogFile /var/log/proftpd/SQL.log
+</Global>
# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
DenyAll
</Limit>
+#####
+# Include other confs, e.g. tls.conf
+#Include /etc/proftpd/conf.d/*.conf
+
+#####
+
+# ------------------------------
+# Anonymous Settings
+# ------------------------------
# A basic anonymous configuration, no upload directories. If you do not
# want anonymous users, simply delete this entire <Anonymous> section.
<Anonymous ~ftp>
- User ftp
- Group ftp
-
- # We want clients to be able to login with "anonymous" as well as "ftp"
- UserAlias anonymous ftp
-
- # Limit the maximum number of anonymous logins
- MaxClients 10
-
- # We want 'welcome.msg' displayed at login, and '.message' displayed
- # in each newly chdired directory.
- DisplayLogin welcome.msg
- DisplayChdir .message
-
- # Limit WRITE everywhere in the anonymous chroot
- <Limit WRITE>
- DenyAll
- </Limit>
+ # Limit LOGIN
+ #<Limit LOGIN>
+ # Order Allow,Deny
+ # Allow from .examples.net,113.141.114.1
+ # Deny from All
+ #</Limit>
+
+ ## or 'Include' a limit file with rules
+ ## include one file and use more than once ;)
+ #<Limit LOGIN>
+ # Order Allow,Deny
+ # Include /etc/proftpd/includes/limit.conf
+ # Deny from All
+ #</Limit>
+
+ # Limit WRITE everywhere in the anonymous chroot
+ <Limit WRITE>
+ DenyAll
+ </Limit>
+
+ # LoginPasswordPrompt -- Configure to display the passwort prompt or not
+ LoginPasswordPrompt off
+
+ # DirFakeMode -- Hide real file/directory permissions
+ DirFakeMode 0640
+
+ # DirFakeUser -- Hide real file/directory owner
+ DirFakeUser On
+
+ # DirFakeGroup -- Hide real file/directory group
+ DirFakeGroup On
+
+ # We want clients to be able to login with "anonymous" as well as "ftp"
+ UserAlias anonymous ftp
+
+ # Limit the maximum number of anonymous logins
+ MaxClients 10
+ #MaxRetrieveFileSize 512 Mb
+
+ # Limit Up/Downloads to 255 K/sec
+ #TransferRate APPE,RETR,STOR,STOU 255
+
+ # We want 'welcome.msg' displayed at login, and '.message' displayed
+ # in each newly chdired directory.
+ DisplayLogin welcome.msg
+ DisplayChdir .message
+
+ #<Directory pub>
+ # <Limit ALL>
+ # Order Allow,Deny
+ # Allow from .examples.net,113.141.114.1
+ # Deny from All
+ # </Limit>
+ #</Directory>
+
+ ## or 'Include' a limit file with rules
+ ## include one file and use more than once ;)
+ #<Directory pub>
+ # <Limit ALL>
+ # Order Allow,Deny
+ # Include /etc/proftpd/includes/limit.conf
+ # Deny from All
+ # </Limit>
+ #</Directory>
+
+ # An upload directory that allows storing files but not retrieving
+ # or creating directories.
+ #<Directory uploads/*>
+ # <Limit READ>
+ # DenyAll
+ # </Limit>
+ # <Limit STOR>
+ # AllowAll
+ # </Limit>
+ #</Directory>
</Anonymous>
+
++++++ proftpd-dist.patch ++++++
Index: contrib/dist/rpm/ftp.pamd
===================================================================
--- contrib/dist/rpm/ftp.pamd.orig
+++ contrib/dist/rpm/ftp.pamd
@@ -1,6 +1,7 @@
#%PAM-1.0
+
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers
onerr=succeed
-auth required pam_unix.so shadow nullok
+#auth required pam_unix.so shadow nullok
# If this is enabled, anonymous logins will fail because the 'ftp' user does
# not have a "valid" shell, as listed in /etc/shells.
@@ -11,5 +12,9 @@ auth required pam_unix.so shadow n
#
#auth required pam_shells.so
-account required pam_unix.so
-session required pam_unix.so
+auth required pam_unix2.so
+auth required pam_shells.so
+account required pam_unix2.so
+password required pam_unix2.so
+session required pam_unix2.so
+session optional pam_keyinit.so revoke
Index: contrib/dist/rpm/proftpd.logrotate
===================================================================
--- contrib/dist/rpm/proftpd.logrotate.orig
+++ contrib/dist/rpm/proftpd.logrotate
@@ -1,10 +1,16 @@
-/var/log/proftpd/*.log /var/log/xferlog {
+/var/log/proftpd/xferlog /var/log/proftpd/*.log {
compress
- missingok
+ dateext
+ maxage 365
+ rotate 99
+ size=+4096k
notifempty
+ missingok
+ create 640 root root
sharedscripts
postrotate
- test -f /var/lock/subsys/proftpd && /usr/bin/killall -HUP proftpd || :
+ /usr/sbin/rcproftpd reload
+ #/etc/init.d/xinetd reload
endscript
}
Index: contrib/dist/rpm/xinetd
===================================================================
--- contrib/dist/rpm/xinetd.orig
+++ contrib/dist/rpm/xinetd
@@ -2,13 +2,15 @@
# description: The ProFTPD FTP server
service ftp
{
- flags = REUSE
socket_type = stream
+ protocol = tcp
wait = no
+# bind = IP
+ instances = 30
user = root
server = /usr/sbin/in.proftpd
- log_on_success += DURATION
- log_on_failure += USERID
- nice = 10
+ log_on_success += PID HOST USERID EXIT DURATION
+ log_on_failure += HOST USERID ATTEMPT
+# nice = 10
disable = yes
}
++++++ proftpd-ftpasswd.patch ++++++
Index: contrib/ftpasswd
===================================================================
--- contrib/ftpasswd.orig
+++ contrib/ftpasswd
@@ -32,8 +32,8 @@ use Getopt::Long;
$Getopt::Long::auto_abbrev = 0;
my $program = basename($0);
-my $default_passwd_file = "./ftpd.passwd";
-my $default_group_file = "./ftpd.group";
+my $default_passwd_file = "/etc/proftpd/auth/passwd";
+my $default_group_file = "/etc/proftpd/auth/group";
my $shell_file = "/etc/shells";
my $default_cracklib_dict = "/usr/lib/cracklib_dict";
my $cracklib_dict;
@@ -1128,6 +1128,46 @@ usage: $program [--help] [--hash|--group
--version
Displays the version of $program.
+Creating Files
+
+The ftpasswd program can create and update files for both AuthUserFile and
+ AuthGroupFile. When it is used for the first time, the program will create
+ the necessary file. If that file already exists, ftpasswd will update it
+ with the new information.
+
+ftpasswd must first know what type of file to create. Use either the
+ --passwd option (for handling AuthUserFiles), or the --group option
+ (for handling AuthGroupFiles); this is required.
+
+When creating an AuthUserFile, the following options are also
+ required: --name, --uid, --home, and --shell.
+ This information is required by proftpd to authenticate a user. The optional
+ parameters for an AuthUserFile include --gid
+ (defaults to the given --uid argument when not provided)
+ and --gecos (not used by proftpd at all). For example:
+
+ ftpasswd --passwd --name=bob --uid=1001 --home=/home/bob --shell=/bin/false
+
+creates an account for user bob.
+
+To create a file with a name or location other than the default
+ (which, for --passwd mode is /etc/proftpd/auth/passwd), use the --file option.
+
+For example, to create the alternate password file in
/usr/local/etc/ftpd/passwd:
+
+ ftpasswd --passwd --file=/usr/local/etc/ftpd/passwd --name=bob --uid=1001 \
+ --home=/home/bob --shell=/bin/false
+
+For AuthGroupFiles, use --group:
+
+ ftpasswd --group --name=group-name --gid=group-id --member=user-member1 \
+ --member=user-member2 ... --member=user-memberN
+
+The most common change to these files is made to AuthUserFiles, to change
+ a user's password. The --change-password option was provided just for this
scenario:
+
+ ftpasswd --passwd --name=user --change-password
+
END_OF_USAGE
exit 0;
++++++ proftpd-limit.template ++++++
### when you use spaces as separator then you can use it also with apache ;)
### just some examples
Allow from localhost 127.0.0.1 ::1
Allow from 1.2.3.4 5.6.7.8
Allow from .example.com .test.org
Allow from 2.3.4.5 11:22:33:44::/64
++++++ proftpd-no_BuildDate.patch ++++++
---
Makefile.in | 14 ++++++--------
contrib/mod_snmp/db.c | 2 +-
include/version.h | 2 --
src/main.c | 6 ++----
4 files changed, 9 insertions(+), 15 deletions(-)
Index: Makefile.in
===================================================================
--- Makefile.in.orig
+++ Makefile.in
@@ -24,28 +24,26 @@ BUILD_BIN=proftpd$(EXEEXT) ftpcount$(EXE
all: $(BUILD_BIN)
-include/buildstamp.h:
- echo \#define BUILD_STAMP \"`date +"%a %b %e %Y %H:%M:%S %Z"`\" >
include/buildstamp.h
dummy:
-lib: include/buildstamp.h dummy
+lib: dummy
cd lib/ && $(MAKE) lib
-src: include/buildstamp.h dummy
+src: dummy
cd src/ && $(MAKE) src
-modules: include/buildstamp.h dummy
+modules: dummy
cd modules/ && $(MAKE) static
test -z "$(SHARED_MODULE_OBJS)" -a -z "$(SHARED_MODULE_DIRS)" || (cd
modules/ && $(MAKE) shared)
-utils: include/buildstamp.h dummy
+utils: dummy
cd utils/ && $(MAKE) utils
-locale: include/buildstamp.h dummy
+locale: dummy
test -z "$(ENABLE_NLS)" || (cd locale/ && $(MAKE) locale)
-dirs: include/buildstamp.h dummy
+dirs: dummy
@dirs="$(DIRS)"; \
for dir in $$dirs; do \
if [ -d "$$dir" ]; then cd $$dir/ && $(MAKE); fi; \
Index: contrib/mod_snmp/db.c
===================================================================
--- contrib/mod_snmp/db.c.orig
+++ contrib/mod_snmp/db.c
@@ -1122,7 +1122,7 @@ int snmp_db_get_value(pool *p, unsigned
return 0;
case SNMP_DB_DAEMON_F_VERSION:
- *str_value = "ProFTPD Version " PROFTPD_VERSION_TEXT " (built at "
BUILD_STAMP ")";
+ *str_value = "ProFTPD Version " PROFTPD_VERSION_TEXT;
*str_valuelen = strlen(*str_value);
pr_trace_msg(trace_channel, 19,
Index: include/version.h
===================================================================
--- include/version.h.orig
+++ include/version.h
@@ -1,5 +1,3 @@
-#include "buildstamp.h"
-
/* Application version (in various forms) */
#define PROFTPD_VERSION_NUMBER 0x0001030608
#define PROFTPD_VERSION_TEXT "1.3.6c"
Index: src/main.c
===================================================================
--- src/main.c.orig
+++ src/main.c
@@ -1893,8 +1893,8 @@ static void standalone_main(void) {
init_bindings();
- pr_log_pri(PR_LOG_NOTICE, "ProFTPD %s (built %s) standalone mode STARTUP",
- PROFTPD_VERSION_TEXT " " PR_STATUS, BUILD_STAMP);
+ pr_log_pri(PR_LOG_NOTICE, "ProFTPD %s standalone mode STARTUP",
+ PROFTPD_VERSION_TEXT " " PR_STATUS);
if (pr_pidfile_write() < 0) {
fprintf(stderr, "error opening PidFile '%s': %s\n", pr_pidfile_get(),
@@ -1954,7 +1954,6 @@ static void show_settings(void) {
printf("%s", " Platform: " PR_PLATFORM " [unknown]\n");
#endif /* !HAVE_UNAME */
- printf("%s", " Built: " BUILD_STAMP "\n");
printf("%s", " Built With:\n configure " PR_BUILD_OPTS "\n\n");
printf("%s", " CFLAGS: " PR_BUILD_CFLAGS "\n");
@@ -2534,7 +2533,6 @@ int main(int argc, char *argv[], char **
printf("ProFTPD Version: %s", PROFTPD_VERSION_TEXT " " PR_STATUS "\n");
printf(" Scoreboard Version: %08x\n", PR_SCOREBOARD_VERSION);
- printf(" Built: %s\n\n", BUILD_STAMP);
modules_list2(NULL, PR_MODULES_LIST_FL_SHOW_VERSION);
exit(0);
++++++ proftpd-ssl.README ++++++
Place your CA.crt, crt and key file here and create sysmlinks like following ...
ssl
├── proftpd.cacert.pem -> CA.crt
├── proftpd.cert.pem -> wildcard.example.com.crt
├── proftpd.key.pem -> wildcard.example.com.pem
├── CA.crt
├── wildcard.example.com.crt
└── wildcard.example.com.pem
then:
copy conf.d/tls.template to conf.d/tls.conf
finally:
uncomment '#Include /etc/proftpd/conf.d/*.conf' in proftp.conf
++++++ proftpd-strip.patch ++++++
Index: ltmain.sh
===================================================================
--- ltmain.sh.orig
+++ ltmain.sh
@@ -2056,7 +2056,10 @@ func_mode_install ()
;;
esac
if test -n "$tstripme" && test -n "$striplib"; then
- func_show_eval "$striplib $destdir/$realname" 'exit $?'
+ #func_show_eval "$striplib $destdir/$realname" 'exit $?'
+ echo "strip patch"
+ func_quote_for_expand "$striplib $destdir/$realname"
+ func_echo $func_quote_for_expand_result
fi
if test "$#" -gt 0; then
++++++ proftpd-tls.template ++++++
###############################################################################
# http://www.proftpd.org/docs/contrib/mod_tls.html
###############################################################################
<IfModule mod_dso.c>
# If mod_tls was built as a shared/DSO module, load it
LoadModule mod_tls.c
</IfModule>
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
# Support both SSLv3 and TLSv1, but they should not be used
# (known to be weak)
TLSProtocol TLSv1.1 TLSv1.2
# Are clients required to use FTP over TLS when talking to this server?
TLSRequired off
# Server's RSA certificate
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
# CA (or CA chain) to verify client certs
#TLSCACertificateFile /etc/proftpd/ssl/proftpd.cacert.pem
# CA (or CA chain) to verify certification path of server cert
TLSCertificateChainFile /etc/proftpd/ssl/proftpd.cacert.pem
# Authenticate clients that want to use FTP over TLS?
TLSVerifyClient off
# Allow SSL/TLS renegotiations when the client requests them, but
# do not force the renegotations. Some clients do not support
# SSL/TLS renegotiations; when mod_tls forces a renegotiation, these
# clients will close the data connection, or there will be a timeout
# on an idle data connection.
TLSRenegotiate none
# Should Server request a Clients Certificate and send valid CA list ?
TLSOptions NoSessionReuseRequired
</IfModule>
++++++ proftpd.init ++++++
#! /bin/sh
# Copyright (c) 1995-2004 SUSE Linux AG, Nuernberg, Germany.
# All rights reserved.
#
# Author: Kurt Garloff
# Please send feedback to http://www.suse.de/feedback/
#
# /etc/init.d/proftpd
# and its symbolic link
# /(usr/)sbin/rcproftpd
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
### BEGIN INIT INFO
# Provides: proftpd
# Required-Start: $syslog $remote_fs
# Should-Start: $time ypbind sendmail
# Required-Stop: $syslog $remote_fs
# Should-Stop: $time ypbind sendmail
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: ProFTPD daemon
# Description: Start ProFTPD to allow XY and provide YZ
### END INIT INFO
#
# Note on runlevels:
# 0 - halt/poweroff 6 - reboot
# 1 - single user 2 - multiuser without network exported
# 3 - multiuser w/ network (text mode) 5 - multiuser w/ network and X11 (xdm)
#
# Note on script names:
# http://www.linuxbase.org/spec/refspecs/LSB_1.3.0/gLSB/gLSB/scrptnames.html
# A registry has been set up to manage the init script namespace.
# http://www.lanana.org/
# Please use the names already registered or register one or use a
# vendor prefix.
# Check for missing binaries (stale symlinks should not happen)
# Note: Special treatment of stop for LSB conformance
PROFTPD_BIN=/usr/sbin/proftpd
test -x $PROFTPD_BIN || { echo "$PROFTPD_BIN not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
PROFTPD_RUNDIR=/var/run/proftpd
# Check for existence of needed config file and read it
#PROFTPD_CONFIG=/etc/sysconfig/proftpd
#test -r $PROFTPD_CONFIG || { echo "$PROFTPD_CONFIG not existing";
# if [ "$1" = "stop" ]; then exit 0;
# else exit 6; fi; }
#
# Read config
#. $PROFTPD_CONFIG
# Source LSB init functions
# providing start_daemon, killproc, pidofproc,
# log_success_msg, log_failure_msg and log_warning_msg.
# This is currently not used by UnitedLinux based distributions and
# not needed for init scripts for UnitedLinux only. If it is used,
# the functions from rc.status should not be sourced or used.
#. /lib/lsb/init-functions
# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v be verbose in local rc status and clear it afterwards
# rc_status -v -r ditto and clear both the local and overall rc status
# rc_status -s display "skipped" and exit with status 3
# rc_status -u display "unused" and exit with status 3
# rc_failed set local and overall rc status to failed
# rc_failed <num> set local and overall rc status to <num>
# rc_reset clear both the local and overall rc status
# rc_exit exit appropriate to overall rc status
# rc_active checks whether a service is activated by symlinks
. /etc/rc.status
# Reset status of this service
rc_reset
# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - user had insufficient privileges
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signaling is not supported) are
# considered a success.
case "$1" in
start)
if [ ! -d $PROFTPD_RUNDIR ]; then
mkdir -p $PROFTPD_RUNDIR
fi
echo -n "Starting proftpd "
## Start daemon with startproc(8). If this fails
## the return value is set appropriately by startproc.
/sbin/startproc $PROFTPD_BIN
# Remember status and be verbose
rc_status -v
;;
stop)
echo -n "Shutting down proftpd "
## Stop daemon with killproc(8) and if this fails
## killproc sets the return value according to LSB.
/sbin/killproc -TERM $PROFTPD_BIN
# Remember status and be verbose
rc_status -v
;;
try-restart|condrestart)
## Do a restart only if the service was active before.
## Note: try-restart is now part of LSB (as of 1.9).
## RH has a similar command named condrestart.
if test "$1" = "condrestart"; then
echo "${attn} Use try-restart ${done}(LSB)${attn} rather than
condrestart ${warn}(RH)${norm}"
fi
$0 status
if test $? = 0; then
$0 restart
else
rc_reset # Not running is not a failure.
fi
# Remember status and be quiet
rc_status
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
$0 start
# Remember status and be quiet
rc_status
;;
force-reload)
echo -n "Reload service proftpd "
## Signal the daemon to reload its config. Most daemons
## do this on signal 1 (SIGHUP).
## If it does not support it, restart the service if it
## is running.
# if it supports it:
/sbin/killproc -HUP $PROFTPD_BIN
#touch /var/run/proftpd.pid
# Remember status and be verbose
rc_status -v
## Otherwise:
#$0 try-restart
#rc_status
;;
reload)
echo -n "Reload service proftpd "
## Like force-reload, but if daemon does not support
## signaling, do nothing (!)
# If it supports signaling:
/sbin/killproc -HUP $PROFTPD_BIN
#touch /var/run/proftpd.pid
# Remember status and be verbose
rc_status -v
## Otherwise if it does not support reload:
#rc_failed 3
#rc_status -v
;;
status)
echo -n "Checking for service proftpd "
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.
# Return value is slightly different for the status command:
# 0 - service up and running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running (unused)
# 4 - service status unknown :-(
# 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
# NOTE: checkproc returns LSB compliant status values.
/sbin/checkproc $PROFTPD_BIN
# NOTE: rc_status knows that we called this init script with
# "status" option and adapts its messages accordingly.
# Remember status and be verbose
rc_status -v
;;
probe)
## Optional: Probe for the necessity of a reload, print out the
## argument to this init script which is required for a reload.
## Note: probe is not (yet) part of LSB (as of 1.9)
test /etc/proftpd/proftpd.conf -nt $PROFTPD_RUNDIR/proftpd.pid && echo
reload
;;
*)
echo "Usage: $0
{start|stop|status|try-restart|restart|force-reload|reload|probe}"
exit 1
;;
esac
rc_exit
++++++ proftpd.keyring ++++++
pub 1024D/A511976A 2002-05-12
uid TJ Saunders <[email protected]>
sub 2048g/8C26F9DE 2002-05-12
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.19 (GNU/Linux)
mQGiBDze4PkRBADtl8nbLuIgZkIdl6fUj9/LOBXGrtP5B8cTgDjBlURronHtLzkQ
oHqNS8zmh5gmg8F6EMnCy6tqTGlQ3OylhY2u8fBUFJZk0RpaGYka0SI+hkNn/Hmu
GLXs4+5RKIuL1lp1DFv2L2S+Qp3xFs0vYJsrdi7nRhM1/LqN9S0pr2/i9QCg/5bD
AMS9qiVZvd7E0464cWWUXDsD/2z7fwPUFD23bHGSpifSl8jOqUuOWf5lhJqXLpHZ
TnSsO+rOi5dXdB1fPwgvwFnv7akFStTpXaRq1XdB33/QTwWNO3DBXKe8VkBivXTY
nWHLiktQwoY06Ws6r2cYxfgRhoHBSQFR/e1OhURaV8d0nSZsISrUyOREAYFUZT0L
s0jHBADcNSLHoehRf69mBEh3SMk+hiNse8r0VTcE6aJ5AISE6famDQw9cQh8gdmf
R5LrN/QbF4qQ2jWrfzhkVB6oslyghk3KCncFMnmT/4QpPVfSeTon3yM0Sz9Gtr2Q
YRp6Qhy7RgnoJ35bMaleww18WKOJtS840PRikboy5XFXt14gvbQeVEogU2F1bmRl
cnMgPHRqQGNhc3RhZ2xpYS5vcmc+iFYEEBECAA4FAjze4PkECwMBAgIZAQASCRC3
jok/pRGXagdlR1BHAAEB4EMAoL0MfmR26WnBxfQAUFD1bMnSO95EAKC1jnqqe9Xq
TPTsGWOZwNGc13nTmLkCDQQ83uD7EAgA9kJXtwh/CBdyorrWqULzBej5UxE5T7bx
brlLOCDaAadWoxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1WV/cdlJP
PT2N286Z4VeSWc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01uejaClcjrU
GvC/RgBYK+X0iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJI8BD8KVb
GI2Ou1WMuF040zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaGxAMZyAcp
esqVDNmWn6vQClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6TILOwACAgf+ORAr
y8LE18PVKiJk9/bpZ+LzSQ/kgNKDjqRsqT8HOFjToIpbbY1lOBErEr7OedJGK3ra
g1q8vD+kNK4MZdNcEeIcaMG7TnArOJ4zNZzKBQQzZp8hdv8heirfhJtb5MdFO2MI
N2+I9OoeUXNX1GVxYQJkuHpvsbqbZ6P2bRYwPUmnSAy6y2yy3ZmTZDD6ItaUaTIA
JbT8myTljeO4vz80nWldpUZfVtwkCRczjL7GYvwGbg1DZ45ND1pq9Kp5jqybevYw
d2a/7es+PgWQxy6qRFW3j95lm9Dd7ha29trziinxZ5GevUgyPIcs5SCQUG+cb5Yb
VUpLxGrHLKoW/mdBCYhOBBgRAgAGBQI83uD7ABIJELeOiT+lEZdqB2VHUEcAAQE1
CwCdGzQx8HHoe2O+tc3ymntAdNl7kLYAoNN0gN75bS/ZWBrKrLR0ne6JAdkO
=X5Db
-----END PGP PUBLIC KEY BLOCK-----
++++++ proftpd.passwd ++++++
ftp:$1$Qirpijna$Z9ocX/jIH/kpBppMFyI451:49:49::/srv/ftp:/bin/false
++++++ proftpd.service ++++++
[Unit]
Description=ProFTPd FTP server
After=systemd-user-sessions.service network.target nss-lookup.target
local-fs.target remote-fs.target
[Service]
ExecStart=/usr/sbin/proftpd --nodaemon
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
++++++ proftpd.tmpfile ++++++
# proFTPD needs a DIR
d /run/proftpd 0755 root root -
++++++ proftpd_env-script-interpreter.patch ++++++
Index: contrib/ftpasswd
===================================================================
--- contrib/ftpasswd.orig
+++ contrib/ftpasswd
@@ -1,4 +1,4 @@
-#!/usr/bin/env perl
+#!/usr/bin/perl
# ---------------------------------------------------------------------------
# Copyright (C) 2000-2020 TJ Saunders <[email protected]>
#
Index: contrib/ftpmail
===================================================================
--- contrib/ftpmail.orig
+++ contrib/ftpmail
@@ -1,4 +1,4 @@
-#!/usr/bin/env perl
+#!/usr/bin/perl
# ---------------------------------------------------------------------------
# Copyright (C) 2008-2013 TJ Saunders <[email protected]>
#
Index: contrib/ftpquota
===================================================================
--- contrib/ftpquota.orig
+++ contrib/ftpquota
@@ -1,4 +1,4 @@
-#!/usr/bin/env perl
+#!/usr/bin/perl
# -------------------------------------------------------------------------
# Copyright (C) 2000-2017 TJ Saunders <[email protected]>
#
Index: src/prxs.in
===================================================================
--- src/prxs.in.orig
+++ src/prxs.in
@@ -1,4 +1,4 @@
-#!/usr/bin/env perl
+#!/usr/bin/perl
# ---------------------------------------------------------------------------
# Copyright (C) 2008-2012 TJ Saunders <[email protected]>