From: Marcin Krol Date: Mon, 2 Jun 2014 11:34:55 +0000 (+0000) Subject: - from PLD X-Git-Url: https://git.tld-linux.org/?p=packages%2Fproftpd.git;a=commitdiff_plain;h=b39b489c4492c8743f8318bb9d6b11283d9b3f1c - from PLD --- b39b489c4492c8743f8318bb9d6b11283d9b3f1c diff --git a/ftp.pamd b/ftp.pamd new file mode 100644 index 0000000..53c7399 --- /dev/null +++ b/ftp.pamd @@ -0,0 +1,14 @@ +#%PAM-1.0 +auth required pam_listfile.so item=user sense=deny file=/etc/ftpd/ftpusers onerr=succeed +auth required pam_listfile.so item=user sense=deny file=/etc/security/blacklist.ftp onerr=succeed +#auth required pam_shells.so +auth include system-auth +# above line in chroot()ed environment (when using DefaultRoot) causes: +# pam_env(ftp:setcred): Unable to open config file: /etc/security/pam_env.conf: No such file or directory +# pam_tally(ftp:setcred): pam_get_uid; no such user +# only with pam_unix in session component +account required pam_nologin.so +account include system-auth +session required pam_limits.so +session required pam_unix.so +# on logout: PAM audit_log_acct_message() failed: Operation not permitted diff --git a/proftpd-anonftp.conf b/proftpd-anonftp.conf new file mode 100644 index 0000000..3f869b1 --- /dev/null +++ b/proftpd-anonftp.conf @@ -0,0 +1,40 @@ +# $Id$ + +# A basic anonymous configuration +# uncoment this section below if you want gain annonymous ftp acces + + User ftp + Group ftp + AnonRequirePassword off + RequireValidShell off + + # 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 + + AllowStoreRestart on + + # Limit WRITE everywhere in the anonymous chroot + + DenyAll + + +# +# +# DenyAll +# +# +# AllowAll +# +# +# AllowAll +# +# + diff --git a/proftpd-mod_clamav.conf b/proftpd-mod_clamav.conf new file mode 100644 index 0000000..b27596a --- /dev/null +++ b/proftpd-mod_clamav.conf @@ -0,0 +1,14 @@ +# Single system with both ProFTPd and Clamd utilizing Unix local sockets. +# +# ClamAV on +# ClamLocalSocket /tmp/clamd +# + +# Single system with both ProFTPd and Clamd utilizing TCP sockets. +# Additionally, only files who's size is less than 250MB will be scanned. +# +# ClamAV on +# ClamServer 127.0.0.1 +# ClamPort 3310 +# ClamMaxSize 250 Mb +# diff --git a/proftpd-mod_pam.conf b/proftpd-mod_pam.conf new file mode 100644 index 0000000..53bd288 --- /dev/null +++ b/proftpd-mod_pam.conf @@ -0,0 +1,8 @@ +# $Id$ +LoadModule mod_auth_pam.c + + + AuthPAM on + # use PAM authoritative + # AuthOrder mod_auth_pam.c* mod_auth_unix.c + diff --git a/proftpd-mod_tls.conf b/proftpd-mod_tls.conf new file mode 100644 index 0000000..f5103cf --- /dev/null +++ b/proftpd-mod_tls.conf @@ -0,0 +1,22 @@ +# $Id$ +LoadModule mod_tls.c + +# TLSEngine must be enabled for TLS options to have effect. +#TLSEngine on + +# These are the TLS related options, default values +#TLSRSACertificateFile /etc/ftpd/ftpd-rsa.pem +#TLSRSACertificateKeyFile /etc/ftpd/ftpd-rsa-key.pem + +#TLSDSACertificateFile /etc/ftpd/ftpd-dsa.pem +#TLSDSACertificateKeyFile /etc/ftpd/ftpd-dsa-key.pem + +#TLSCARevocationFile /etc/ftpd/ftpd-crl.pem +#TLSDHParamFile /etc/ftpd/ftpd-dhparam.pem + +#TLSCipherSuite ALL:!EXP + +# don't verify any peer certificates +#TLSVerifyClient off + +#TLSRequired off diff --git a/proftpd-noautopriv.patch b/proftpd-noautopriv.patch new file mode 100644 index 0000000..be965ea --- /dev/null +++ b/proftpd-noautopriv.patch @@ -0,0 +1,10 @@ +--- proftpd-1.2.0pre1/include/log.h.noauthpriv Thu Feb 11 12:10:38 1999 ++++ proftpd-1.2.0pre1/include/log.h Thu Feb 11 12:11:01 1999 +@@ -25,6 +25,7 @@ + #ifndef __LOG_H + #define __LOG_H + ++#undef LOG_AUTHPRIV + #ifndef LOG_AUTHPRIV + #define LOG_AUTHPRIV LOG_AUTH + #endif diff --git a/proftpd-paths.patch b/proftpd-paths.patch new file mode 100644 index 0000000..363216f --- /dev/null +++ b/proftpd-paths.patch @@ -0,0 +1,58 @@ +--- proftpd-1.2.0pre3/contrib/xferstats.holger-preiss Sun Oct 18 04:24:41 1998 ++++ proftpd-1.2.0pre3.pld/contrib/xferstats.holger-preiss Fri May 28 10:49:08 1999 +@@ -1,4 +1,4 @@ +-#! /usr/bin/perl ++#!/usr/bin/perl + # --------------------------------------------------------------------------- + # + # USAGE: xferstats +@@ -40,7 +40,7 @@ + # If you want to specify $mydom1 and $mydom2 manually you should edit the + # next two lines to customize for your domain. This will allow your domain + # to be separated in the domain listing. +-# $mydom1 = "debian"; ++# $mydom1 = "pld"; + # $mydom2 = "org"; + + # edit the next line to customize for your default log file +--- proftpd-1.3.0/include/default_paths.h~ 2006-04-29 14:05:26.906490255 +0300 ++++ proftpd-1.3.0/include/default_paths.h 2006-04-29 14:06:53.778425641 +0300 +@@ -57,7 +57,7 @@ + * overriden at runtime with the '-c' switch + */ + #ifndef PR_CONFIG_FILE_PATH +-# define PR_CONFIG_FILE_PATH "/etc/proftpd.conf" ++# define PR_CONFIG_FILE_PATH "/etc/ftpd/proftpd.conf" + #endif + + /* The location of your `shells' file; a newline delimited list of +@@ -80,6 +80,6 @@ + /* Location of the file containing users that *cannot* use ftp + * services (odd, eh?) + */ +-#define PR_FTPUSERS_PATH "/etc/ftpusers" ++#define PR_FTPUSERS_PATH "/etc/ftpd/ftpusers" + + #endif /* PROFTPD_PATHS_H */ +--- proftpd-1.3.3b/configure.in~ 2010-09-15 11:59:14.956175001 +0200 ++++ proftpd-1.3.3b/configure.in 2010-09-15 12:05:20.368863997 +0200 +@@ -2276,7 +2276,7 @@ + locale_dir="`eval echo ${locale_dir}`" + AC_DEFINE_UNQUOTED(PR_LOCALE_DIR, "`eval echo "${locale_dir}"`") + +-AC_DEFINE_UNQUOTED(PR_RUN_DIR, "`eval echo "${localstatedir}"`") ++AC_DEFINE_UNQUOTED(PR_RUN_DIR, "`eval echo "${localstatedir}/proftpd"`") + AC_DEFINE_UNQUOTED(PR_CONFIG_FILE_PATH, "`eval echo "${sysconfdir}/proftpd.conf"`") + AC_DEFINE_UNQUOTED(PR_PID_FILE_PATH, "`eval echo "${localstatedir}/proftpd.pid"`") + +diff -ur proftpd-1.3.2e/Make.rules.in proftpd-1.3.3b/Make.rules.in +--- proftpd-1.3.2e/Make.rules.in 2008-11-19 04:51:38.000000000 +0100 ++++ proftpd-1.3.3b/Make.rules.in 2009-11-18 22:48:25.000000000 +0100 +@@ -11,6 +11,7 @@ + localedir=@localedir@ + localstatedir=@localstatedir@ + pkgconfigdir=@pkgconfigdir@ ++rundir=@localstatedir@/proftpd + mandir=@mandir@ + + AR=@AR@ diff --git a/proftpd-pool.patch b/proftpd-pool.patch new file mode 100644 index 0000000..6ecaeba --- /dev/null +++ b/proftpd-pool.patch @@ -0,0 +1,11 @@ +--- proftpd-1.3.0/src/pool.c.orig 2005-03-08 18:06:39.000000000 +0100 ++++ proftpd-1.3.0/src/pool.c 2006-10-24 12:53:07.000000000 +0200 +@@ -47,7 +47,7 @@ + union align a; + + /* Padding */ +-#if defined(_LP64) || defined(__LP64__) ++#if defined(_LP64) || defined(__LP64__) || defined(__alpha__) + char pad[32]; + #endif + diff --git a/proftpd-wtmp.patch b/proftpd-wtmp.patch new file mode 100644 index 0000000..9aa7aef --- /dev/null +++ b/proftpd-wtmp.patch @@ -0,0 +1,37 @@ +diff -burNp proftpd-1.3.2.orig/src/log.c proftpd-1.3.2-dud/src/log.c +--- proftpd-1.3.2.orig/src/wtmp.c 2008-12-17 00:43:55.000000000 +0100 ++++ proftpd-1.3.2-dud/src/wtmp.c 2009-02-09 14:24:34.271689801 +0100 +@@ -129,9 +129,31 @@ int log_wtmp(char *line, const char *nam + struct utmp ut; + static int fd = -1; + ++#if defined(HAVE_UTMPX_H) ++#if !defined(WTMPX_FILE) && defined(_PATH_WTMPX) ++# define WTMPX_FILE _PATH_WTMPX ++#endif ++ static char *wtmp_file = NULL; ++ if (wtmp_file == NULL) { ++ if (access(WTMPX_FILE"x", F_OK) == 0) ++ wtmp_file = WTMPX_FILE"x"; ++ else if (access(WTMPX_FILE, F_OK) == 0) ++ wtmp_file = WTMPX_FILE; ++ else if (access(WTMP_FILE"x", F_OK) == 0) ++ wtmp_file = WTMP_FILE"x"; ++ else if (access(WTMP_FILE, F_OK) == 0) ++ wtmp_file = WTMP_FILE; ++ else { ++ pr_log_pri(PR_LOG_WARNING, "cannot find "WTMPX_FILE); ++ return -1; ++ } ++ } ++#else ++ static char *wtmp_file = WTMP_FILE; ++#endif + if (fd < 0 && +- (fd = open(WTMP_FILE, O_WRONLY|O_APPEND, 0)) < 0) { +- pr_log_pri(PR_LOG_WARNING, "wtmp %s: %s", WTMP_FILE, strerror(errno)); ++ (fd = open(wtmp_file, O_WRONLY|O_APPEND, 0)) < 0) { ++ pr_log_pri(PR_LOG_WARNING, "wtmp %s: %s", wtmp_file, strerror(errno)); + return -1; + } + diff --git a/proftpd.conf b/proftpd.conf new file mode 100644 index 0000000..9f00ce8 --- /dev/null +++ b/proftpd.conf @@ -0,0 +1,73 @@ +# $Id$ + +ServerName "ProFTPD" +ServerType standalone +DeferWelcome off +DefaultServer on +#IdentLookups off +#UseReverseDNS off + +# Set to off if you use NSS LDAP, NIS, etc. +#PersistentPasswd off + +# If you want .message files to work with browsers, you probably +# want to uncomment the next line +#MultilineRFC2228 on + +# Port 21 is the standard FTP port. +Port 21 +# Umask 022 is a good standard umask to prevent new dirs and files +# from being group and world writable. +Umask 022 + +# Set the user and group that the server normally runs at. +User ftp +Group ftp + +#RequireValidShell off + +# use separate auth files instead of system auth +#AuthUserFile /etc/ftpd/passwd +#AuthGroupFile /etc/ftpd/group + +# Normally, we want files to be overwriteable. + + AllowOverwrite on + + +# lock users to their homedir +DefaultRoot ~ + +# allow resume uploads and downloads +AllowRetrieveRestart on +AllowStoreRestart on + +# enable this to have your ftp server FXP gateway. +# only enable this if you trust your users as it allows your ftp server to connect anywhere. +# DO NOT enable this if you have anonymous logins enabled! +#AllowForeignAddress on + +# NAT support +# http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-NAT.html +#MasqueradeAddress my.domain.com +#PassivePorts 60000 65535 + +#UseIPv6 off + +# Do not announce server software at logon. for paranoids. +#ServerIdent off + +# To prevent DoS attacks, set the maximum number of child processes +# to 30. If you need to allow more than 30 concurrent connections +# at once, simply increase this value. Note that this ONLY works +# 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 + +# Idle +TimeoutLogin 300 +TimeoutNoTransfer 300 + +# Load additional (modules) config +Include /etc/ftpd/conf.d/*.conf diff --git a/proftpd.inetd b/proftpd.inetd new file mode 100644 index 0000000..a981a1a --- /dev/null +++ b/proftpd.inetd @@ -0,0 +1,8 @@ +SERVICE_NAME=ftp +SOCK_TYPE=stream +PROTOCOL=tcp +PORT=21 +FLAGS=nowait +USER=root +SERVER=tcpd +DAEMON=/usr/sbin/proftpd diff --git a/proftpd.init b/proftpd.init new file mode 100644 index 0000000..71ac087 --- /dev/null +++ b/proftpd.init @@ -0,0 +1,92 @@ +#!/bin/sh +# +# proftpd ProFTPD ftp server +# +# chkconfig: 345 85 15 +# description: ProFTPD is a highly configurable ftp daemon for unix and unix-like \ +# operating systems. +# processname: proftpd +# pidfile: /var/run/proftpd.pid +# config: /etc/ftpd/proftpd.conf + + +# Source function library +. /etc/rc.d/init.d/functions + +# Get network config +. /etc/sysconfig/network + +# Get service config +[ -f /etc/sysconfig/proftpd ] && . /etc/sysconfig/proftpd + +# Check that networking is up. +if is_yes "${NETWORKING}"; then + if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then + msg_network_down proftpd + exit 1 + fi +else + exit 0 +fi + +start() { + # Check if the service is already running? + if [ ! -f /var/lock/subsys/proftpd ]; then + msg_starting ProFTPD + daemon /usr/sbin/proftpd $PROFTPD_OPTS + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd + else + msg_already_running ProFTPD + fi +} + +stop() { + if [ -f /var/lock/subsys/proftpd ]; then + msg_stopping ProFTPD + killproc proftpd + rm -f /var/lock/subsys/proftpd /var/run/proftpd/* >/dev/null 2>&1 + else + msg_not_running ProFTPD + fi +} + +condrestart() { + if [ -f /var/lock/subsys/proftpd ]; then + stop + start + else + msg_not_running ProFTPD + RETVAL=$1 + fi +} + +RETVAL=0 +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + try-restart) + condrestart 0 + ;; + force-reload) + condrestart 7 + ;; + status) + status proftpd + exit $? + ;; + *) + msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}" + exit 3 +esac + +exit $RETVAL diff --git a/proftpd.spec b/proftpd.spec new file mode 100644 index 0000000..a0c34ab --- /dev/null +++ b/proftpd.spec @@ -0,0 +1,792 @@ +# TODO +# - mod_caps uses uname -r for detection +# - don't use internal libltdl +# - package contrib/ftp* perl scripts. +# +# Conditional build: +%bcond_without pam # disable PAM support +%bcond_without ipv6 # disable IPv6 and TCPD support +%bcond_without ssl # disbale TLS/SSL support +%bcond_without ldap # disable LDAP support +%bcond_without mysql # disable MySQL support +%bcond_without pgsql # disable PostgreSQL support +%bcond_without quotafile # disable quota file support +%bcond_without quotaldap # disable quota ldap support +%bcond_without quotamysql # disable quota mysql support +%bcond_without quotapgsql # disable quota pgsql support +# +%define mod_clamav_version 0.11rc + +Summary: PROfessional FTP Daemon with apache-like configuration syntax +Summary(es.UTF-8): Servidor FTP profesional, con sintaxis de configuración semejante a la del apache +Summary(pl.UTF-8): PROfesionalny serwer FTP +Summary(pt_BR.UTF-8): Servidor FTP profissional, com sintaxe de configuração semelhante à do apache +Summary(zh_CN.UTF-8): 易于管理的,安全的 FTP 服务器 +Name: proftpd +Version: 1.3.4d +Release: 1 +Epoch: 2 +License: GPL v2+ +Group: Networking/Daemons +Source0: ftp://ftp.proftpd.org/distrib/source/%{name}-%{version}.tar.gz +# Source0-md5: 13c6fd7ce320886adc371c81a3e23f07 +Source1: https://secure.thrallingpenguin.com/redmine/attachments/download/1/mod_clamav-%{mod_clamav_version}.tar.gz +# Source1-md5: 42e560ec0bd5964e13fad1b2bb7afe21 +Source2: %{name}.conf +Source3: ftp.pamd +Source4: %{name}.inetd +Source5: %{name}.sysconfig +Source6: %{name}.init +Source7: ftpusers.tar.bz2 +# Source7-md5: 76c80b6ec9f4d079a1e27316edddbe16 +Source9: %{name}-mod_pam.conf +Source10: %{name}-mod_tls.conf +Source11: %{name}-anonftp.conf +Source12: %{name}-mod_clamav.conf +Source13: %{name}.tmpfiles +Patch0: %{name}-paths.patch +Patch1: %{name}-noautopriv.patch +Patch2: %{name}-wtmp.patch +Patch3: %{name}-pool.patch +URL: http://www.proftpd.org/ +BuildRequires: acl-devel +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libcap-devel +BuildRequires: libstdc++-devel +BuildRequires: libwrap-devel +%if %{with mysql} || %{with quotamysql} +BuildRequires: mysql-devel +%endif +BuildRequires: ncurses-devel +%if %{with ldap} || %{with quotaldap} +BuildRequires: openldap-devel +%endif +%{?with_ssl:BuildRequires: openssl-devel >= 0.9.7d} +%{?with_pam:BuildRequires: pam-devel} +%if %{with pgsql} || %{with quotapgsql} +BuildRequires: postgresql-devel +%endif +BuildRequires: rpmbuild(macros) >= 1.268 +BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) + +%define _sysconfdir /etc/ftpd +%define _localstatedir /var/run +%define _libexecdir %{_prefix}/%{_lib}/%{name} + +%description +ProFTPD is a highly configurable FTP daemon for Unix and Unix-like +operating systems. ProFTPD is designed to be somewhat of a "drop-in" +replacement for wu-ftpd. Full online documentation is available at +, including a server configuration directive +reference manual. + +%description -l es.UTF-8 +ProFTPD es un servidor FTP altamente configurable para sistemas +operativos Unix. Está proyectado para ser un substituto directo al +wu-ftpd. La documentación completa está disponible en +, incluido el manual de referencia para las +directivas de configuración del servidor. + +%description -l pl.UTF-8 +ProFTPD jest wysoce konfigurowalnym serwerem FTP dla systemów Unix. +ProFTPD jest robiony jako bezpośredni zamiennik wu-ftpd. Pełna +dokumentacja jest dostępna on-line pod +włącznie z dokumentacją dotyczącą konfigurowania. + +%description -l pt_BR.UTF-8 +O ProFTPD é um servidor FTP altamente configurável para sistemas +operacionais Unix. + +É projetado para ser um substituto direto para o wu-ftpd. A +documentação completa está disponível em , +incluindo o manual de referência para as diretivas de configuração do +servidor. + +%package common +Summary: PROfessional FTP Daemon with apache-like configuration syntax - common files +Summary(pl.UTF-8): PROfesionalny serwer FTP - wspólne pliki +Group: Networking/Daemons +Requires(post): awk +Requires(post): fileutils +Obsoletes: proftpd < 0:1.2.2rc1-3 + +%description common +ProFTPD is a highly configurable FTP daemon for Unix and Unix-like +operating systems. ProFTPD is designed to be somewhat of a "drop-in" +replacement for wu-ftpd. Full online documentation is available at +, including a server configuration directive +reference manual. + +%description common -l es.UTF-8 +ProFTPD es un servidor FTP altamente configurable para sistemas +operativos Unix. Está proyectado para ser un substituto directo al +wu-ftpd. La documentación completa está disponible en +, incluido el manual de referencia para las +directivas de configuración del servidor. + +%description common -l pl.UTF-8 +ProFTPD jest wysoce konfigurowalnym serwerem FTP dla systemów Unix. +ProFTPD jest robiony jako bezpośredni zamiennik wu-ftpd. Pełna +dokumentacja jest dostępna on-line pod +włącznie z dokumentacją dotyczącą konfigurowania. + +%description common -l pt_BR.UTF-8 +O ProFTPD é um servidor FTP altamente configurável para sistemas +operacionais Unix. + +É projetado para ser um substituto direto para o wu-ftpd. A +documentação completa está disponível em , +incluindo o manual de referência para as diretivas de configuração do +servidor. + +%package inetd +Summary: inetd configs for proftpd +Summary(pl.UTF-8): Pliki konfiguracyjne do użycia proftpd poprzez inetd +Group: Networking/Daemons +Requires(post): fileutils +Requires(post): grep +Requires(post): sed >= 4.0 +Requires(triggerpostun): sed >= 4.0 +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: rc-inetd +Provides: ftpserver +Provides: proftpd = %{epoch}:%{version}-%{release} +Obsoletes: anonftp +Obsoletes: bftpd +Obsoletes: ftpd-BSD +Obsoletes: ftpserver +Obsoletes: glftpd +Obsoletes: heimdal-ftpd +Obsoletes: krb5-ftpd +Obsoletes: linux-ftpd +Obsoletes: muddleftpd +Obsoletes: proftpd-standalone +Obsoletes: pure-ftpd +Obsoletes: troll-ftpd +Obsoletes: vsftpd +Obsoletes: wu-ftpd +Conflicts: man-pages < 1.51 +Conflicts: rpm < 4.4.2-0.2 + +%description inetd +ProFTPD configs for running from inetd. + +%description inetd -l pl.UTF-8 +Pliki konfiguracyjna ProFTPD do startowania demona poprzez inetd. + +%package standalone +Summary: Standalone daemon configs for proftpd +Summary(pl.UTF-8): Pliki konfiguracyjne do startowania proftpd w trybie standalone +Group: Networking/Daemons +Requires(post): fileutils +Requires(post): grep +Requires(post): sed >= 4.0 +Requires(post,preun): /sbin/chkconfig +Requires(triggerpostun): sed >= 4.0 +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: rc-scripts +Provides: ftpserver +Provides: proftpd = %{epoch}:%{version}-%{release} +Obsoletes: anonftp +Obsoletes: bftpd +Obsoletes: ftpd-BSD +Obsoletes: ftpserver +Obsoletes: glftpd +Obsoletes: heimdal-ftpd +Obsoletes: krb5-ftpd +Obsoletes: linux-ftpd +Obsoletes: muddleftpd +Obsoletes: proftpd-inetd +Obsoletes: pure-ftpd +Obsoletes: troll-ftpd +Obsoletes: vsftpd +Obsoletes: wu-ftpd +Conflicts: man-pages < 1.51 +Conflicts: rpm < 4.4.2-0.2 + +%description standalone +ProFTPD configs for running as a standalone daemon. + +%description standalone -l pl.UTF-8 +Pliki konfiguracyjne ProFTPD do startowania demona w trybie +standalone. + +%package devel +Summary: Header files ProFTPD +Summary(pl.UTF-8): Pliki nagłówkowe ProFTPD +Group: Development/Libraries +Requires: acl-devel + +%description devel +This is the package containing the header files for ProFTPD. + +%description devel -l pl.UTF-8 +Ten pakiet zawiera pliki nagłówkowe ProFTPD + +%package anonftp +Summary: Anonymous FTP config for ProFTPD +Summary(pl.UTF-8): Konfiguracja anonimowego FTP dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description anonftp +Anonymous FTP config for ProFTPD. + +%description anonftp -l pl.UTF-8 +Konfiguracja anonimowego FTP dla ProFTPD. + +%package mod_auth_pam +Summary: ProFTPD PAM auth module +Summary(pl.UTF-8): Moduł uwierzytelnienia PAM dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: pam >= 0.79.0 + +%description mod_auth_pam +PAM authentication method for ProFTPD. + +%description mod_auth_pam -l pl.UTF-8 +Metoda uwierzytelnienia PAM dla ProFTPD. + +%package mod_ldap +Summary: ProFTPD OpenLDAP module +Summary(pl.UTF-8): Moduł OpenLDAP dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_ldap +mod_ldap provides LDAP authentication support for ProFTPD. It supports +many features useful in "toaster" environments such as default UID/GID +and autocreation/autogeneration of home directories. + +%description mod_ldap -l pl.UTF-8 +mod_ldap dodaje obsługę uwierzytelnienia LDAP do ProFTPD. Obsługuje +wiele cech przydatnych w środowiskach "tosterowych", takich jak +domyślny UID/GID i automatyczne tworzenie/generowanie katalogów +domowych. + +%package mod_quotatab +Summary: ProFTPD quotatab module +Summary(pl.UTF-8): Moduł quotatab dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_quotatab +A module for managing FTP byte/file quotas via centralized tables. + +%description mod_quotatab -l pl.UTF-8 +Moduł do zarządzania ograniczeniami bajtów/plików FTP poprzez +scentralizowane tabele. + +%package mod_quotatab_file +Summary: ProFTPD quotatab file module +Summary(pl.UTF-8): Moduł quotatab_file dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release} + +%description mod_quotatab_file +A mod_quotatab sub-module for managing quota data via file-based +tables. + +%description mod_quotatab_file -l pl.UTF-8 +Podmoduł mod_quotatab do zarządzania danymi o ograniczeniach poprzez +tabele zapisane w pliku. + +%package mod_quotatab_ldap +Summary: ProFTPD quotatab ldap module +Summary(pl.UTF-8): Moduł quotatab_ldap dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-mod_ldap = %{epoch}:%{version}-%{release} +Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release} + +%description mod_quotatab_ldap +A mod_quotatab sub-module for obtaining quota information from an LDAP +directory. + +%description mod_quotatab_ldap -l pl.UTF-8 +Podmoduł mod_quotatab do pobierania informacji o ograniczeniach z +katalogu LDAP. + +%package mod_quotatab_sql +Summary: ProFTPD quotatab sql module +Summary(pl.UTF-8): Moduł quotatab_sql dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-mod_quotatab = %{epoch}:%{version}-%{release} +Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release} + +%description mod_quotatab_sql +A mod_quotatab sub-module for managing quota data via SQL-based +tables. + +%description mod_quotatab_sql -l pl.UTF-8 +Podmoduł mod_quotatab do zarządzania danymi o ograniczeniach poprzez +tabele SQL. + +%package mod_ratio +Summary: ProFTPD ratio module +Summary(pl.UTF-8): Moduł ratio dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_ratio +Support upload/download ratios. + +%description mod_ratio -l pl.UTF-8 +Obsługa współczynników upload/download. + +%package mod_readme +Summary: ProFTPD readme module +Summary(pl.UTF-8): Moduł readme dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_readme +"README" file support. + +%description mod_readme -l pl.UTF-8 +Obsługa pliku "README". + +%package mod_rewrite +Summary: ProFTPD rewrite module +Summary(pl.UTF-8): Moduł rewrite dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_rewrite +Runtime rewrite engine. + +%description mod_rewrite -l pl.UTF-8 +Silnik przepisujący adresy w locie. + +%package mod_sql +Summary: ProFTPD SQL support module +Summary(pl.UTF-8): Moduł obsługi SQL dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_sql +This module provides the necessary support for SQL based +authentication, logging and other features as required. + +%description mod_sql -l pl.UTF-8 +Ten moduł dodaje obsługę SQL potrzebną do uwierzytelniania, logowania +i innych możliwości opartych o SQL. + +%package mod_sql_mysql +Summary: ProFTPD sql mysql module +Summary(pl.UTF-8): Moduł sql_mysql dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release} + +%description mod_sql_mysql +Support for connecting to MySQL databases. + +%description mod_sql_mysql -l pl.UTF-8 +Obsługa łączenia się z bazami danych MySQL. + +%package mod_sql_postgres +Summary: ProFTPD sql postgres module +Summary(pl.UTF-8): Moduł sql_postgres dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-mod_sql = %{epoch}:%{version}-%{release} + +%description mod_sql_postgres +Support for connecting to PostgreSQL databases. + +%description mod_sql_postgres -l pl.UTF-8 +Obsługa łączenia się z bazami danych PostgreSQL. + +%package mod_tls +Summary: ProFTPD TLS support +Summary(pl.UTF-8): Obsługa TLS dla ProFTPD +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} + +%description mod_tls +An RFC2228 SSL/TLS module for ProFTPD. + +%description mod_tls -l pl.UTF-8 +Moduł SSL/TLS zgodny z RFC2228 dla ProFTPD. + +%package mod_wrap +Summary: ProFTPD interface to libwrap +Summary(pl.UTF-8): Interfejs ProFTPD do libwrap +Group: Networking/Daemons +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: libwrap + +%description mod_wrap +It enables the daemon to use the common tcpwrappers access control +library while in standalone mode, and in a very configurable manner. + +Many programs will automatically add entries in the common allow/deny +files, and use of this module will allow a ProFTPD daemon running in +standalone mode to adapt as these entries are added. The portsentry +program does this, for example: when illegal access is attempted, it +will add hosts to the /etc/hosts.deny file. + +%description mod_wrap -l pl.UTF-8 +Ten pakiet pozwala demonowi używać wspólnej biblioteki kontroli +dostępu tcpwrappers w trybie samodzielnym w bardzo wygodny sposób. + +Wiele programów automatycznie dodaje wpisy we wspólnych plikach +allow/deny, a użycie tego modułu pozwala demonowi ProFTPD działającemu +w trybie samodzielnym adaptować te wpisy w miarę dodawania. Robi tak +na przykład program portsentry: przy próbie niedozwolonego dostępu +dodaje hosty do pliku /etc/hosts.deny. + +%prep +%setup -q -n %{name}-%{version}%{?_rc} -a1 +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 + +# mod_clamav +patch -p0 < mod_clamav-%{mod_clamav_version}/proftpd.patch +cp -a mod_clamav-%{mod_clamav_version}/*.{c,h} contrib/ + +cp -f /usr/share/automake/config.sub . + +# cleanup backups after patching +find . '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f + +%build +%{__autoconf} + +MODULES=" +mod_auth_file +mod_ident +mod_ratio +mod_readme +mod_rewrite +mod_wrap +mod_facl +mod_ifsession +mod_lang +%{?with_ssl:mod_tls} +%{?with_pam:mod_auth_pam} +%{?with_ldap:mod_ldap} +%{?with_quotafile:mod_quotatab mod_quotatab_file} +%{?with_quotaldap:mod_quotatab mod_quotatab_ldap} +%{?with_quotamysql:mod_quotatab mod_quotatab_sql} +%{?with_quotapgsql:mod_quotatab mod_quotatab_sql} +%{?with_mysql:mod_sql mod_sql_mysql} +%{?with_pgsql:mod_sql mod_sql_postgres} +" + +MODARG=$(echo $MODULES | tr ' ' '\n' | sort -u | xargs | tr ' ' ':') +%configure \ + --with-includes=/usr/include/ncurses%{?with_mysql::%{_includedir}/mysql} \ + --disable-strip \ + --enable-buffer-size=4096 \ + --disable-auth-file \ + --enable-autoshadow \ + --enable-ctrls \ + --enable-dso \ + %{?with_ipv6:--enable-ipv6} \ + --enable-sendfile \ + %{!?with_ssl:--disable-tls} \ + --with-shared=$MODARG \ + --with-modules=mod_clamav + +%{__make} -j1 + +%install +rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT/etc/{pam.d,security,sysconfig/rc-inetd,rc.d/init.d} \ + $RPM_BUILD_ROOT/var/{lib/ftp/pub/Incoming,log,run/proftpd} \ + $RPM_BUILD_ROOT%{_sysconfdir}/conf.d \ + $RPM_BUILD_ROOT%{_includedir}/%{name} \ + $RPM_BUILD_ROOT/usr/lib/tmpfiles.d + +%{__make} install \ + DESTDIR=$RPM_BUILD_ROOT \ + INSTALL_USER=%(id -u) \ + INSTALL_GROUP=%(id -g) + +rm $RPM_BUILD_ROOT%{_sbindir}/in.proftpd + +install %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir} +install %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_auth_pam.conf +MODULES=" +mod_auth_file +mod_ident +mod_ratio +mod_readme +mod_rewrite +mod_wrap +%{?with_ldap:mod_ldap} +%{?with_quotafile:mod_quotatab mod_quotatab_file} +%{?with_quotaldap:mod_quotatab mod_quotatab_ldap} +%{?with_quotamysql:mod_quotatab mod_quotatab_sql} +%{?with_quotapgsql:mod_quotatab mod_quotatab_sql} +%{?with_mysql:mod_sql mod_sql_mysql} +%{?with_pgsql:mod_sql mod_sql_postgres} +" +for module in $MODULES; do + echo "LoadModule $module.c" > $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/$module.conf +done +install %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_tls.conf +install %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/anonftp.conf +install %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/mod_clamav.conf + +%{?with_pam:install %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/ftp} +install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/rc-inetd/ftpd +install %{SOURCE5} $RPM_BUILD_ROOT/etc/sysconfig/proftpd +install %{SOURCE6} $RPM_BUILD_ROOT/etc/rc.d/init.d/proftpd +install contrib/xferstats.holger-preiss $RPM_BUILD_ROOT%{_bindir}/xferstat + +bzip2 -dc %{SOURCE7} | tar xf - -C $RPM_BUILD_ROOT%{_mandir} + +:> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers.default +:> $RPM_BUILD_ROOT%{_sysconfdir}/ftpusers + +install %{SOURCE13} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf + +# only for -inetd package? +ln -sf proftpd $RPM_BUILD_ROOT%{_sbindir}/ftpd + +:> $RPM_BUILD_ROOT/etc/security/blacklist.ftp + +rm $RPM_BUILD_ROOT%{_libexecdir}/*.a +rm $RPM_BUILD_ROOT%{_libexecdir}/*.la + +rm -f $RPM_BUILD_ROOT%{_mandir}/ftpusers-path.diff* +cp -aL include/* config.h $RPM_BUILD_ROOT%{_includedir}/%{name} + +%clean +rm -rf $RPM_BUILD_ROOT + +%post common +umask 027 +awk -F: '{ if (($3 < 500) && ($1 != "ftp")) print $1; }' < /etc/passwd >> %{_sysconfdir}/ftpusers.default +if [ ! -f %{_sysconfdir}/ftpusers ]; then + cp -f %{_sysconfdir}/ftpusers.default %{_sysconfdir}/ftpusers +fi + +%posttrans inetd +if grep -iEqs "^ServerType[[:space:]]+standalone" %{_sysconfdir}/proftpd.conf ; then + cp -f %{_sysconfdir}/proftpd.conf{,.rpmorig} + sed -i -e 's/^ServerType[[:space:]]\+standalone/ServerType inetd/g' %{_sysconfdir}/proftpd.conf +fi +%service -q rc-inetd reload + +%postun inetd +if [ "$1" = "0" ]; then + %service -q rc-inetd reload +fi + +%posttrans standalone +if grep -iEqs "^ServerType[[:space:]]+inetd" %{_sysconfdir}/proftpd.conf ; then + cp -f %{_sysconfdir}/proftpd.conf{,.rpmorig} + sed -i -e 's/^ServerType[[:space:]]\+inetd/ServerType standalone/g' %{_sysconfdir}/proftpd.conf +fi +/sbin/chkconfig --add proftpd +%service proftpd restart "ProFTPD daemon" + +%preun standalone +if [ "$1" = "0" ]; then + %service proftpd stop + /sbin/chkconfig --del proftpd +fi + +%triggerin standalone -- pam +# restart proftpd if pam is upgraded +# (proftpd is linked with old libpam but tries to open modules linked with new libpam) +if [ "$2" != 1 ]; then + %service -q proftpd restart +fi + +# macro called at module post scriptlet +%define module_post \ +if [ "$1" = "1" ]; then \ + if grep -iEqs "^ServerType[[:space:]]+inetd" %{_sysconfdir}/proftpd.conf; then \ + %service -q rc-inetd reload \ + elif grep -iEqs "^ServerType[[:space:]]+standalone" %{_sysconfdir}/proftpd.conf; then \ + %service -q proftpd restart \ + fi \ +fi + +# macro called at module postun scriptlet +%define module_postun \ +if [ "$1" = "0" ]; then \ + if grep -iEqs "^ServerType[[:space:]]+inetd" %{_sysconfdir}/proftpd.conf; then \ + %service -q rc-inetd reload \ + elif grep -iEqs "^ServerType[[:space:]]+standalone" %{_sysconfdir}/proftpd.conf; then \ + %service -q proftpd restart \ + fi \ +fi + +# it's sooo annoying to write them +%define module_scripts() \ +%post %1 \ +%module_post \ +\ +%postun %1 \ +%module_postun + +%module_scripts mod_auth_pam +%module_scripts mod_ldap +%module_scripts mod_quotatab +%module_scripts mod_quotatab_file +%module_scripts mod_quotatab_ldap +%module_scripts mod_quotatab_sql +%module_scripts mod_ratio +%module_scripts mod_readme +%module_scripts mod_rewrite +%module_scripts mod_sql +%module_scripts mod_sql_mysql +%module_scripts mod_sql_postgres +%module_scripts mod_tls +%module_scripts mod_wrap + +%files common +%defattr(644,root,root,755) +%doc sample-configurations/*.conf CREDITS ChangeLog NEWS RELEASE_NOTES +%doc README README.capabilities README.classes README.controls README.IPv6 +%doc README.modules +%doc doc/*.html doc/contrib doc/howto doc/modules +%dir %attr(750,root,ftp) %dir %{_sysconfdir} +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/ftpusers +%attr(640,root,root) %{_sysconfdir}/ftpusers.default +%dir %attr(750,root,root) %{_sysconfdir}/conf.d +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_auth_file.conf +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ident.conf +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_clamav.conf +#%attr(640,root,root) %ghost /var/log/* +%attr(755,root,root) %{_bindir}/* +%attr(755,root,root) %{_sbindir}/* +%dir %{_libexecdir} +%attr(755,root,root) %{_libexecdir}/mod_auth_file.so +%attr(755,root,root) %{_libexecdir}/mod_facl.so +%attr(755,root,root) %{_libexecdir}/mod_ident.so +%attr(755,root,root) %{_libexecdir}/mod_ifsession.so +%attr(755,root,root) %{_libexecdir}/mod_lang.so +%dir %{_localstatedir}/proftpd +/usr/lib/tmpfiles.d/%{name}.conf +%{_mandir}/man5/* +%lang(ja) %{_mandir}/ja/man5/ftpusers* +%lang(pl) %{_mandir}/pl/man5/ftpusers* +%lang(pt_BR) %{_mandir}/pt_BR/man5/ftpusers* +%lang(ru) %{_mandir}/ru/man5/ftpusers* +%{_mandir}/man[18]/* +%dir /var/lib/ftp +%dir /var/lib/ftp/pub +%attr(711,ftp,ftp) %dir /var/lib/ftp/pub/Incoming + +%files inetd +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/rc-inetd/ftpd + +%files standalone +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/proftpd +%attr(754,root,root) /etc/rc.d/init.d/proftpd + +%files devel +%defattr(644,root,root,755) +%{_includedir}/%{name} +%{_pkgconfigdir}/%{name}.pc + +%files anonftp +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/anonftp.conf + +%if %{with pam} +%files mod_auth_pam +%defattr(644,root,root,755) +%doc README.PAM +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/* +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist.ftp +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_auth_pam.conf +%attr(755,root,root) %{_libexecdir}/mod_auth_pam.so +%endif + +%if %{with ldap} +%files mod_ldap +%defattr(644,root,root,755) +%doc README.LDAP +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ldap.conf +%attr(755,root,root) %{_libexecdir}/mod_ldap.so +%endif + +%files mod_quotatab +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab.conf +%attr(755,root,root) %{_libexecdir}/mod_quotatab.so + +%if %{with quotafile} +%files mod_quotatab_file +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_file.conf +%attr(755,root,root) %{_libexecdir}/mod_quotatab_file.so +%endif + +%if %{with quotaldap} +%files mod_quotatab_ldap +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_ldap.conf +%attr(755,root,root) %{_libexecdir}/mod_quotatab_ldap.so +%endif + +%if %{with quotamysql} || %{with quotapgsql} +%files mod_quotatab_sql +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_quotatab_sql.conf +%attr(755,root,root) %{_libexecdir}/mod_quotatab_sql.so +%endif + +%files mod_ratio +%defattr(644,root,root,755) +%doc contrib/README.ratio +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_ratio.conf +%attr(755,root,root) %{_libexecdir}/mod_ratio.so + +%files mod_readme +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_readme.conf +%attr(755,root,root) %{_libexecdir}/mod_readme.so + +%files mod_rewrite +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_rewrite.conf +%attr(755,root,root) %{_libexecdir}/mod_rewrite.so + +%if %{with mysql} || %{with pgsql} +%files mod_sql +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql.conf +%attr(755,root,root) %{_libexecdir}/mod_sql.so +%endif + +%if %{with mysql} +%files mod_sql_mysql +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql_mysql.conf +%attr(755,root,root) %{_libexecdir}/mod_sql_mysql.so +%endif + +%if %{with pgsql} +%files mod_sql_postgres +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_sql_postgres.conf +%attr(755,root,root) %{_libexecdir}/mod_sql_postgres.so +%endif + +%files mod_tls +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_tls.conf +%attr(755,root,root) %{_libexecdir}/mod_tls.so + +%files mod_wrap +%defattr(644,root,root,755) +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mod_wrap.conf +%attr(755,root,root) %{_libexecdir}/mod_wrap.so diff --git a/proftpd.sysconfig b/proftpd.sysconfig new file mode 100644 index 0000000..0460e73 --- /dev/null +++ b/proftpd.sysconfig @@ -0,0 +1,8 @@ +# Customized settings for proftpd + +# Nice level for proftpd +SERVICE_RUN_NICE_LEVEL="+5" + +# Cmdline options +PROFTPD_OPTS="" + diff --git a/proftpd.tmpfiles b/proftpd.tmpfiles new file mode 100644 index 0000000..2eaa4e7 --- /dev/null +++ b/proftpd.tmpfiles @@ -0,0 +1 @@ +d /var/run/proftpd 0755 root root -