●インストール(CentOS 7で動作せず)
最新版はProFTPDのサイトからダウンロード出来ます。概要はProFTPD - Wikipediaを参照してください。
今回はProFTPDサイトのDocs indexを参照して、下記モジュールが有効になるように設定します。
makeの進行状況は下記のとおりです。
make installの進行状況は下記のとおりです。
●インストール(CentOS 7)
LDAPとも連携をしたいのでproftpd-ldapもインストールします。
また、LDAP上のアカウントでログインできない場合、「●SSHでログインできるか確認する」を参照してください。
●設定
ProFTPD をインストールするとデフォルトの設定ファイルproftpd.confが作成されます。ProFTPDの実行にはこの設定ファイルを使います。
●その他の設定
Anonymous FTPの設定方法
Turbolinux 11 Server の /etc/proftpd.conf には、すでに匿名 FTP サイトを公開するための設定がコメントとして記述されています。以下のように、<Anonymous ~ftp>と</Anonymous>で囲まれた箇所が匿名FTPサイトを公開するための記述です。ただし、初期設定では匿名FTPサイトは機能していません。解説する手順に従い、匿名FTPサイトを有効にする必要があります。
もし、匿名FTPサイトだけを提供したいのであれば、server configコンテキストに以下のLimitディレクティブを記述します。
その他、Anonymousディレクティブで使用されているディレクティブの意味は以下の通りです。
Anonymous root-directory
匿名FTPサイトとして公開するルートディレクトリをroot-directoryに指定します。~を記述した場合は、続くユーザーのホームディレクトリを意味します。この例では、~ftpと指定されていますので、ftpユーザーのホームディレクトリをあらわします。Turbolinux 11 Serverの/etc/passwdファイルには以下のように記述されているため、/var/ftpディレクトリが匿名FTPサイトのルートディレクトリとなります。
User userid / Group groupid
ProFTPDのサーバープロセスを実行するユーザーとグループを指定します。この例では、ftpと指定されていますので、ユーザーが匿名FTPユーザーでログインすると、proftpdデーモンのUIDとGIDはftpに切り替わります。
UserAlias login-user userid
システムに存在するユーザーに対するエイリアスを指定することができます。login-userで指定したユーザー名でFTPサーバーにログインすると、あたかも実際のユーザーであるuseridでログインしたかのように動作します。この例では、ftpユーザーに anonymousというエイリアスを定義していますので、anonymousユーザーで匿名FTPサイトへログインできるようになります。
RequireValidShell on|off
ProFTPDの初期設定では、ユーザーのログインシェルが/etc/passwdに設定されていなければログインを拒否しますが、この設定をoffにするとログインは許可されます。匿名FTPサイトを有効にするには記述します。
MaxClients number|none [message]
Anonymous FTPサーバーへログインすることが可能なクライアントの最大数を指定しています。Turbolinux 11 Serverの初期設定では、10が指定されています。この数を超えるクライアントがログインを試みたときには、以下のメッセージを表示し切断します。
DisplayLogin filename
ユーザーがログインしたときに表示するメッセージを記述したテキストファイル名を指定します。初期設定は、/var/ftp/welcome.msgです。
DisplayFirstChdir filename
ディレクトリを変更したときに表示するメッセージを記述したテキストファイル名を指定します。初期設定は、.messageです。
Limit command [command2 ..]
Limitディレクティブは、FTPコマンドにアクセス制限をかけるために使用します。この例では、ディレクトリへの書き込みを完全に拒否する設定をしています。
/var/ftp/uploadsディレクトリについて
匿名FTPサイトを有効にすると、Anonymousディレクティブの指定に従い、ftpユーザーのホームディレクトリ/var/ftpがルートディレクトリとして公開されます。Turbolinux 11 Serverでは、このディレクトリに以下2つのディレクトリがあらかじめ存在しています。
アクセスユーザの制限
localhostと192.168.0.0/24, 192.168.1.0/24からのみアクセスを許可し、それ以外は拒否するように設定。
Resume機能のサポート
大きなサイズのファイルのダウンロードやアップロード中に回線断等のトラブルにより転送が中断してしまった場合、クライアントがサポートしていれば、中断点から再開できるのが、Resume機能です。ダウンロードはデフォルトで機能が有効になっていますが、アップロードは無効になっています。有効にしたい場合は下記設定を追加します。
ただし、アップロードを許可すると言うことは、RESTコマンドによって再開するので、クライアントのオペミス(同一名称のままアップロード)で、先に保存されたファイルが壊れたりすることがあります。特にanonymousでは絶対に使用しないほうが良いでしょう。
アップロード中断ファイルの自動削除
大きなファイルをアップロードすることがない場合は意味がありませんが、アップロード中に回線断等ではなく、クライアント操作で転送を中断(ABORコマンドによる中断)した場合に、下記設定をしておくと中途半端なファイルを自動的に削除します。上記のAllowStoreRestartとは背反です。
同一ホストからの同時接続数の制限
ダウンロードツール等を使用した場合、複数セッションを設定して高速でダウンロードできるようになりますが、特定ユーザに細い回線を占有されてしまいます。これを制限するのが下記の設定で、数字は同時接続数で、デフォルトは無制限です。制限されたときは、下記メッセージが返送されます。
アップロードファイル容量の制限
アップロードを許可している場合、大容量のファイルをアップロードや、anonymousによるいたずらを防止することができます。最悪はHDDを使い切ってシステムロックすることも考えられますので、設定しておいたほうが良いでしょう。
ただし、この設定で制限できるのはファイルの大きさだけなので、quotaでHDDの使用量制限を併用することを推奨します。なお、ダウンロードの制限もMaxRetrieveFileSizeで可能ですが、あまり意味はありません。
下記の上の例は全てを3MByteに制限する例であり、下の例はanonymousのみ50KByteに制限する例である。単位は、"Gb"、"Mb"、"Kb"、"B"(bytes)です。
タイマ関係の設定
タイマ関係としては、以下が設定可能ですが、家庭内で使用するには基本的にデフォルト値で問題ないなので、特に追加記述は不要です。各自の動作環境を想定して変更すると良い。変更する場合は、TimeoutStalledで、ストール(止まった)したままでいつまでも繋いでおく必要もないので、10分(600)程度で自動切断する方がよい。トータル時間を制限するなら、TimeoutSessionを指定することにより、転送の遅いユーザを切断することもできます。
なお、ここで無制限としても、巨大なファイルを細い回線で時間をかけて転送している場合、転送が切れてしまう(転送完了後に切断されることが多いはず)ことがある。これは、クライアントの実装にもよりますが、データ転送中は制御コネクションにデータが流れないためルータのNATテーブルが消えてしまうことから発生します。制御コネクションのKeepaliveとしてNOOPコマンドを投げているクライアントもあります。
転送量の制御
従来、転送量の制御は、RateRead*とRateWrite*で行えるようになっていましたが、1.2.8rc1から本ディレクティブは廃止されTransferRate というディレクティブに変更、集約されました。
TransferRateディレクティブのパラメータは以下のとおりであり、コンテキストはserver config、<VirtualHost>、<Global>、<Anonymous>、<Directory>、.ftpaccessなので、制御単位に合わせて適宜設定します。
Class ディレクティブは、server configに下記のように記述します。
帯域の制御
下記の設定例では、/tmp/frpdir2ディレクトリ内のファイルをダウンロードしようとすると、おおよそ最大1000KByte/sに制限されます。
●サーバ証明書の作成
ProFTPDのSSL/TLS暗号化通信を有効にするために必要なサーバ証明書を作成します。必要なファイルは、CSRファイル(サーバの証明書発行の署名要求)と秘密鍵と証明書ですが、このうちの証明書は自己署名した電子証明書を使うこととします。
SSL証明書の作成方法は下記を参照してください。
サーバ証明書の作成
●SSLへの対応
参考URL:proftpd.confの設定
/etc/proftpd.confのSSLに関係する設定を下記のようにしました。
また、ファイアーウォールを設定している時はパッシブポートで接続できるように設定してください。
●起動
ProFTPD の自動起動スクリプトは ProFTPD のソースファイル(contrib/dist/rpm/proftpd.init.d)に含まれています。これを/etc/rc.d/init.d/proftpdファイルとしてコピーします。
●ldap上のアカウントを使用して認証する
前提条件はldapサーバーが構築済みで、ldapサーバーの設定は以下とします。
●ログイン時にユーザのホームディレクトリが存在しない場合
ログインしたユーザのホームディレクトリが存在しない場合、下記のようになります。
CreateHome off のとき
●「ホストへの経路がありません」とエラーが表示される
参考URL:Linuxといろいろ
ログイン後ディレクトリ内のリストを表示させようとlsコマンドを実行させると下記のようなエラーが表示されます。
最新版はProFTPDのサイトからダウンロード出来ます。概要はProFTPD - Wikipediaを参照してください。
今回はProFTPDサイトのDocs indexを参照して、下記モジュールが有効になるように設定します。
- SFTP support (mod_sftp)
- SSL/TLS support (mod_tls)
- LDAP support (mod_ldap)
- Quota support (mod_quotatab)
# cd /usr/local/src # wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3f.tar.gz # tar zxvf proftpd-1.3.3f.tar.gz # cd proftpd-1.3.3f # ./configure --enable-openssl --with-modules=mod_sftp:mod_tls:mod_ldap:mod_quotatab # make # make installconfigureの進行状況は下記のとおりです。
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1966080
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... no
checking for dlopen in -ldl... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... yes
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... 64
checking whether the C compiler accepts -Wall... yes
checking for getopt... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking for getopt_long... yes
checking which extension is used for runtime loadable modules... .so
checking which variable specifies run-time module search path... LD_LIBRARY_PATH
checking for the default library search path... /lib /usr/lib /usr/lib/atlas /usr/lib/ctapi /usr/lib/mysql /usr/lib/qt-3.3/lib /usr/lib/xulrunner-1.9.2
checking for library containing dlopen... -ldl
checking for dlerror... yes
checking for shl_load... (cached) no
checking for shl_load in -ldld... (cached) no
checking for dld_link in -ldld... no
checking for _ prefix in compiled symbols... no
checking whether deplibs are loaded by dlopen... yes
checking for argz.h... yes
checking for error_t... yes
checking for argz_add... yes
checking for argz_append... yes
checking for argz_count... yes
checking for argz_create_sep... yes
checking for argz_insert... yes
checking for argz_next... yes
checking for argz_stringify... yes
checking if argz actually works... yes
checking whether libtool supports -dlopen/-dlpreopen... yes
checking for standalone crypt... no
checking for crypt in -lcrypt... yes
checking for standalone gethostbyname... yes
checking for standalone inet_aton... yes
checking for standalone nsl functions... yes
checking for standalone socket functions... yes
checking for _pw_stayopen variable... no
checking krb.h usability... no
checking krb.h presence... no
checking for krb.h... no
checking login.h usability... no
checking login.h presence... no
checking for login.h... no
checking prot.h usability... no
checking prot.h presence... no
checking for prot.h... no
checking usersec.h usability... no
checking usersec.h presence... no
checking for usersec.h... no
checking hpsecurity.h usability... no
checking hpsecurity.h presence... no
checking for hpsecurity.h... no
checking for hpsecurity.h workaround... no
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for ANSI C header files... (cached) yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking junistd.h usability... no
checking junistd.h presence... no
checking for junistd.h... no
checking for memory.h... (cached) yes
checking shadow.h usability... yes
checking shadow.h presence... yes
checking for shadow.h... yes
checking for struct spwd.sp_warn... yes
checking for struct spwd.sp_inact... yes
checking for struct spwd.sp_expire... yes
checking for security/pam_appl.h... no
checking for security/pam_modules.h... no
checking for pam/pam_appl.h... no
checking linux/capability.h usability... yes
checking linux/capability.h presence... yes
checking for linux/capability.h... yes
checking for cap_init in -lcap2... no
checking for cap_init in -lcap... yes
checking whether to enable mod_cap... yes
checking bstring.h usability... no
checking bstring.h presence... no
checking for bstring.h... no
checking crypt.h usability... yes
checking crypt.h presence... yes
checking for crypt.h... yes
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking for inttypes.h... (cached) yes
checking langinfo.h usability... yes
checking langinfo.h presence... yes
checking for langinfo.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking stropts.h usability... no
checking stropts.h presence... no
checking for stropts.h... no
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking for sys/types.h... (cached) yes
checking sys/ucred.h usability... no
checking sys/ucred.h presence... no
checking for sys/ucred.h... no
checking sys/uio.h usability... yes
checking sys/uio.h presence... yes
checking for sys/uio.h... yes
checking for sys/param.h... yes
checking for sys/mount.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking whether netdb.h requires _USE_IRS... no
checking for netinet/in_systm.h... yes
checking for netinet/ip.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for sys/stat.h... (cached) yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/termios.h usability... yes
checking sys/termios.h presence... yes
checking for sys/termios.h... yes
checking sys/termio.h usability... no
checking sys/termio.h presence... no
checking for sys/termio.h... no
checking sys/statvfs.h usability... yes
checking sys/statvfs.h presence... yes
checking for sys/statvfs.h... yes
checking sys/un.h usability... yes
checking sys/un.h presence... yes
checking for sys/un.h... yes
checking sys/vfs.h usability... yes
checking sys/vfs.h presence... yes
checking for sys/vfs.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking dirent.h usability... yes
checking dirent.h presence... yes
checking for dirent.h... yes
checking ndir.h usability... no
checking ndir.h presence... no
checking for ndir.h... no
checking sys/ndir.h usability... no
checking sys/ndir.h presence... no
checking for sys/ndir.h... no
checking sys/dir.h usability... yes
checking sys/dir.h presence... yes
checking for sys/dir.h... yes
checking vmsdir.h usability... no
checking vmsdir.h presence... no
checking for vmsdir.h... no
checking ucred.h usability... no
checking ucred.h presence... no
checking for ucred.h... no
checking ucontext.h usability... yes
checking ucontext.h presence... yes
checking for ucontext.h... yes
checking utime.h usability... yes
checking utime.h presence... yes
checking for utime.h... yes
checking utmpx.h usability... yes
checking utmpx.h presence... yes
checking for utmpx.h... yes
checking regex.h usability... yes
checking regex.h presence... yes
checking for regex.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking curses.h usability... yes
checking curses.h presence... yes
checking for curses.h... yes
checking ncurses.h usability... yes
checking ncurses.h presence... yes
checking for ncurses.h... yes
checking for tzname global variable... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for uid_t in sys/types.h... yes
checking for pid_t... yes
checking for size_t... yes
checking for mode_t... yes
checking for off_t... yes
checking type of array argument to getgroups... gid_t
checking for timer_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for short... yes
checking size of short... 2
checking for int... yes
checking size of int... 4
checking for long... yes
checking size of long... 4
checking for long long... yes
checking size of long long... 8
checking for off_t... (cached) yes
checking size of off_t... 8
checking for size_t... (cached) yes
checking size of size_t... 4
checking for time_t... yes
checking size of time_t... 4
checking for mode_t... (cached) yes
checking for ino_t... yes
checking for intptr_t... yes
checking for socklen_t... yes
checking utmp.h usability... yes
checking utmp.h presence... yes
checking for utmp.h... yes
checking whether struct utmp has ut_user... yes
checking whether struct utmp has ut_host... yes
checking whether struct utmp has ut_exit... yes
checking whether syslog.h defines LOG_CRON... yes
checking whether syslog.h defines LOG_FTP... yes
checking for d_fd in DIR structure... no
checking for dd_fd in DIR structure... no
checking for __dd_fd in DIR structure... no
checking for working alloca.h... yes
checking for alloca... yes
checking for alloca in -lucb... no
checking whether gcc needs -traditional... no
checking whether setpgrp takes no argument... yes
checking return type of signal handlers... void
checking for vprintf... yes
checking for _doprnt... no
checking for bcopy... yes
checking for crypt... yes
checking for fdatasync... yes
checking for fgetgrent... yes
checking for fgetpwent... yes
checking for fgetspent... yes
checking for flock... yes
checking for fpathconf... yes
checking for freeaddrinfo... yes
checking for futimes... yes
checking for getpgid... yes
checking for getpgrp... yes
checking for nl_langinfo... yes
checking for gai_strerror... yes
checking for iconv... yes
checking for dirfd... yes
checking for getaddrinfo... yes
checking for getcwd... yes
checking for getenv... yes
checking for getgrouplist... yes
checking for getgrset... no
checking for gethostbyname2... yes
checking for gethostname... yes
checking for getnameinfo... yes
checking for gettimeofday... yes
checking for hstrerror... yes
checking for inet_aton... yes
checking for inet_ntop... yes
checking for inet_pton... yes
checking for loginrestrictions... no
checking for memcpy... yes
checking for mempcpy... yes
checking for mkdir... yes
checking for mkstemp... yes
checking for mlock... yes
checking for mlockall... yes
checking for munlock... yes
checking for munlockall... yes
checking for pathconf... yes
checking for putenv... yes
checking for regcomp... yes
checking for rmdir... yes
checking for select... yes
checking for setgroups... yes
checking for socket... yes
checking for statfs... yes
checking for strchr... yes
checking for strcoll... yes
checking for strerror... yes
checking for strsep... yes
checking for strtol... yes
checking for strtoull... yes
checking for setprotoent... yes
checking for setspent... yes
checking for endprotoent... yes
checking for vsnprintf... yes
checking for snprintf... yes
checking for setsid... yes
checking for setgroupent... no
checking for seteuid... yes
checking for setegid... yes
checking for setenv... yes
checking for setpgid... yes
checking for siginterrupt... yes
checking for tzset... yes
checking for uname... yes
checking for unsetenv... yes
checking for setpassent... no
checking for struct cmsgcred.cmcred_uid... no
checking for struct sockcred.sc_uid... no
checking for struct sockaddr_in.sin_len... no
checking whether struct addrinfo is defined... yes
checking whether struct sockaddr_storage is defined... yes
checking whether ss_family is defined... yes
checking whether ss_len is defined... no
checking whether __ss_len is defined... no
checking sys/acl.h usability... yes
checking sys/acl.h presence... yes
checking for sys/acl.h... yes
checking acl/libacl.h usability... yes
checking acl/libacl.h presence... yes
checking for acl/libacl.h... yes
checking which POSIX ACL implementation to use... Linux
checking for perm_copy_fd in -lacl... yes
checking which sendfile() implementation to use... Linux
checking sys/sendfile.h usability... yes
checking sys/sendfile.h presence... yes
checking for sys/sendfile.h... yes
checking whether setgrent returns void... yes
checking for initscr in -lcurses... yes
checking for initscr in -lncurses... yes
checking for setproctitle... no
checking libutil.h usability... no
checking libutil.h presence... no
checking for libutil.h... no
checking for setproctitle in -lutil... no
checking sys/pstat.h usability... no
checking sys/pstat.h presence... no
checking for sys/pstat.h... no
checking whether __progname and __progname_full are available... yes
checking which argv replacement method to use... writeable
checking whether printf supports %llu format... yes
checking for duplicate module build requests... no
checking whether linking with OpenSSL functions succeeds... no
checking whether linking with OpenSSL functions requires -ldl... yes
checking whether linking with OpenSSL functions requires -lz... yes
configure: creating ./config.status
config.status: creating include/Makefile
config.status: creating lib/Makefile
config.status: creating locale/Makefile
config.status: creating modules/Makefile
config.status: creating src/Makefile
config.status: creating src/prxs
config.status: creating src/ftpdctl.8
config.status: creating src/proftpd.8
config.status: creating src/xferlog.5
config.status: creating tests/Makefile
config.status: creating utils/Makefile
config.status: creating utils/ftpcount.1
config.status: creating utils/ftpscrub.8
config.status: creating utils/ftpshut.8
config.status: creating utils/ftptop.1
config.status: creating utils/ftpwho.1
config.status: creating Makefile
config.status: creating Make.rules
config.status: creating config.h
config.status: executing libtool commands
config.status: executing default commands
=== configuring in contrib/mod_sftp (/usr/local/src/proftpd-1.3.3f/contrib/mod_sftp)
configure: running /bin/sh ./configure '--prefix=/usr/local' '--enable-openssl' '--with-modules=mod_sftp:mod_tls:mod_ldap:mod_quotatab' --cache-file=/dev/null --srcdir=.
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for AIX... no
checking for library containing strerror... none required
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking for ANSI C header files... (cached) yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking whether OpenSSL has crippled AES support... no
checking whether OpenSSL supports SHA256... yes
checking whether OpenSSL supports SHA512... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating mod_sftp.h
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1966080
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... no
checking for dlopen in -ldl... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... yes
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... 64
checking whether the C compiler accepts -Wall... yes
checking for getopt... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking for getopt_long... yes
checking which extension is used for runtime loadable modules... .so
checking which variable specifies run-time module search path... LD_LIBRARY_PATH
checking for the default library search path... /lib /usr/lib /usr/lib/atlas /usr/lib/ctapi /usr/lib/mysql /usr/lib/qt-3.3/lib /usr/lib/xulrunner-1.9.2
checking for library containing dlopen... -ldl
checking for dlerror... yes
checking for shl_load... (cached) no
checking for shl_load in -ldld... (cached) no
checking for dld_link in -ldld... no
checking for _ prefix in compiled symbols... no
checking whether deplibs are loaded by dlopen... yes
checking for argz.h... yes
checking for error_t... yes
checking for argz_add... yes
checking for argz_append... yes
checking for argz_count... yes
checking for argz_create_sep... yes
checking for argz_insert... yes
checking for argz_next... yes
checking for argz_stringify... yes
checking if argz actually works... yes
checking whether libtool supports -dlopen/-dlpreopen... yes
checking for standalone crypt... no
checking for crypt in -lcrypt... yes
checking for standalone gethostbyname... yes
checking for standalone inet_aton... yes
checking for standalone nsl functions... yes
checking for standalone socket functions... yes
checking for _pw_stayopen variable... no
checking krb.h usability... no
checking krb.h presence... no
checking for krb.h... no
checking login.h usability... no
checking login.h presence... no
checking for login.h... no
checking prot.h usability... no
checking prot.h presence... no
checking for prot.h... no
checking usersec.h usability... no
checking usersec.h presence... no
checking for usersec.h... no
checking hpsecurity.h usability... no
checking hpsecurity.h presence... no
checking for hpsecurity.h... no
checking for hpsecurity.h workaround... no
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for ANSI C header files... (cached) yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking junistd.h usability... no
checking junistd.h presence... no
checking for junistd.h... no
checking for memory.h... (cached) yes
checking shadow.h usability... yes
checking shadow.h presence... yes
checking for shadow.h... yes
checking for struct spwd.sp_warn... yes
checking for struct spwd.sp_inact... yes
checking for struct spwd.sp_expire... yes
checking for security/pam_appl.h... no
checking for security/pam_modules.h... no
checking for pam/pam_appl.h... no
checking linux/capability.h usability... yes
checking linux/capability.h presence... yes
checking for linux/capability.h... yes
checking for cap_init in -lcap2... no
checking for cap_init in -lcap... yes
checking whether to enable mod_cap... yes
checking bstring.h usability... no
checking bstring.h presence... no
checking for bstring.h... no
checking crypt.h usability... yes
checking crypt.h presence... yes
checking for crypt.h... yes
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking for inttypes.h... (cached) yes
checking langinfo.h usability... yes
checking langinfo.h presence... yes
checking for langinfo.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking stropts.h usability... no
checking stropts.h presence... no
checking for stropts.h... no
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking for sys/types.h... (cached) yes
checking sys/ucred.h usability... no
checking sys/ucred.h presence... no
checking for sys/ucred.h... no
checking sys/uio.h usability... yes
checking sys/uio.h presence... yes
checking for sys/uio.h... yes
checking for sys/param.h... yes
checking for sys/mount.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking whether netdb.h requires _USE_IRS... no
checking for netinet/in_systm.h... yes
checking for netinet/ip.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for sys/stat.h... (cached) yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/termios.h usability... yes
checking sys/termios.h presence... yes
checking for sys/termios.h... yes
checking sys/termio.h usability... no
checking sys/termio.h presence... no
checking for sys/termio.h... no
checking sys/statvfs.h usability... yes
checking sys/statvfs.h presence... yes
checking for sys/statvfs.h... yes
checking sys/un.h usability... yes
checking sys/un.h presence... yes
checking for sys/un.h... yes
checking sys/vfs.h usability... yes
checking sys/vfs.h presence... yes
checking for sys/vfs.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking dirent.h usability... yes
checking dirent.h presence... yes
checking for dirent.h... yes
checking ndir.h usability... no
checking ndir.h presence... no
checking for ndir.h... no
checking sys/ndir.h usability... no
checking sys/ndir.h presence... no
checking for sys/ndir.h... no
checking sys/dir.h usability... yes
checking sys/dir.h presence... yes
checking for sys/dir.h... yes
checking vmsdir.h usability... no
checking vmsdir.h presence... no
checking for vmsdir.h... no
checking ucred.h usability... no
checking ucred.h presence... no
checking for ucred.h... no
checking ucontext.h usability... yes
checking ucontext.h presence... yes
checking for ucontext.h... yes
checking utime.h usability... yes
checking utime.h presence... yes
checking for utime.h... yes
checking utmpx.h usability... yes
checking utmpx.h presence... yes
checking for utmpx.h... yes
checking regex.h usability... yes
checking regex.h presence... yes
checking for regex.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking curses.h usability... yes
checking curses.h presence... yes
checking for curses.h... yes
checking ncurses.h usability... yes
checking ncurses.h presence... yes
checking for ncurses.h... yes
checking for tzname global variable... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for uid_t in sys/types.h... yes
checking for pid_t... yes
checking for size_t... yes
checking for mode_t... yes
checking for off_t... yes
checking type of array argument to getgroups... gid_t
checking for timer_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for short... yes
checking size of short... 2
checking for int... yes
checking size of int... 4
checking for long... yes
checking size of long... 4
checking for long long... yes
checking size of long long... 8
checking for off_t... (cached) yes
checking size of off_t... 8
checking for size_t... (cached) yes
checking size of size_t... 4
checking for time_t... yes
checking size of time_t... 4
checking for mode_t... (cached) yes
checking for ino_t... yes
checking for intptr_t... yes
checking for socklen_t... yes
checking utmp.h usability... yes
checking utmp.h presence... yes
checking for utmp.h... yes
checking whether struct utmp has ut_user... yes
checking whether struct utmp has ut_host... yes
checking whether struct utmp has ut_exit... yes
checking whether syslog.h defines LOG_CRON... yes
checking whether syslog.h defines LOG_FTP... yes
checking for d_fd in DIR structure... no
checking for dd_fd in DIR structure... no
checking for __dd_fd in DIR structure... no
checking for working alloca.h... yes
checking for alloca... yes
checking for alloca in -lucb... no
checking whether gcc needs -traditional... no
checking whether setpgrp takes no argument... yes
checking return type of signal handlers... void
checking for vprintf... yes
checking for _doprnt... no
checking for bcopy... yes
checking for crypt... yes
checking for fdatasync... yes
checking for fgetgrent... yes
checking for fgetpwent... yes
checking for fgetspent... yes
checking for flock... yes
checking for fpathconf... yes
checking for freeaddrinfo... yes
checking for futimes... yes
checking for getpgid... yes
checking for getpgrp... yes
checking for nl_langinfo... yes
checking for gai_strerror... yes
checking for iconv... yes
checking for dirfd... yes
checking for getaddrinfo... yes
checking for getcwd... yes
checking for getenv... yes
checking for getgrouplist... yes
checking for getgrset... no
checking for gethostbyname2... yes
checking for gethostname... yes
checking for getnameinfo... yes
checking for gettimeofday... yes
checking for hstrerror... yes
checking for inet_aton... yes
checking for inet_ntop... yes
checking for inet_pton... yes
checking for loginrestrictions... no
checking for memcpy... yes
checking for mempcpy... yes
checking for mkdir... yes
checking for mkstemp... yes
checking for mlock... yes
checking for mlockall... yes
checking for munlock... yes
checking for munlockall... yes
checking for pathconf... yes
checking for putenv... yes
checking for regcomp... yes
checking for rmdir... yes
checking for select... yes
checking for setgroups... yes
checking for socket... yes
checking for statfs... yes
checking for strchr... yes
checking for strcoll... yes
checking for strerror... yes
checking for strsep... yes
checking for strtol... yes
checking for strtoull... yes
checking for setprotoent... yes
checking for setspent... yes
checking for endprotoent... yes
checking for vsnprintf... yes
checking for snprintf... yes
checking for setsid... yes
checking for setgroupent... no
checking for seteuid... yes
checking for setegid... yes
checking for setenv... yes
checking for setpgid... yes
checking for siginterrupt... yes
checking for tzset... yes
checking for uname... yes
checking for unsetenv... yes
checking for setpassent... no
checking for struct cmsgcred.cmcred_uid... no
checking for struct sockcred.sc_uid... no
checking for struct sockaddr_in.sin_len... no
checking whether struct addrinfo is defined... yes
checking whether struct sockaddr_storage is defined... yes
checking whether ss_family is defined... yes
checking whether ss_len is defined... no
checking whether __ss_len is defined... no
checking sys/acl.h usability... yes
checking sys/acl.h presence... yes
checking for sys/acl.h... yes
checking acl/libacl.h usability... yes
checking acl/libacl.h presence... yes
checking for acl/libacl.h... yes
checking which POSIX ACL implementation to use... Linux
checking for perm_copy_fd in -lacl... yes
checking which sendfile() implementation to use... Linux
checking sys/sendfile.h usability... yes
checking sys/sendfile.h presence... yes
checking for sys/sendfile.h... yes
checking whether setgrent returns void... yes
checking for initscr in -lcurses... yes
checking for initscr in -lncurses... yes
checking for setproctitle... no
checking libutil.h usability... no
checking libutil.h presence... no
checking for libutil.h... no
checking for setproctitle in -lutil... no
checking sys/pstat.h usability... no
checking sys/pstat.h presence... no
checking for sys/pstat.h... no
checking whether __progname and __progname_full are available... yes
checking which argv replacement method to use... writeable
checking whether printf supports %llu format... yes
checking for duplicate module build requests... no
checking whether linking with OpenSSL functions succeeds... no
checking whether linking with OpenSSL functions requires -ldl... yes
checking whether linking with OpenSSL functions requires -lz... yes
configure: creating ./config.status
config.status: creating include/Makefile
config.status: creating lib/Makefile
config.status: creating locale/Makefile
config.status: creating modules/Makefile
config.status: creating src/Makefile
config.status: creating src/prxs
config.status: creating src/ftpdctl.8
config.status: creating src/proftpd.8
config.status: creating src/xferlog.5
config.status: creating tests/Makefile
config.status: creating utils/Makefile
config.status: creating utils/ftpcount.1
config.status: creating utils/ftpscrub.8
config.status: creating utils/ftpshut.8
config.status: creating utils/ftptop.1
config.status: creating utils/ftpwho.1
config.status: creating Makefile
config.status: creating Make.rules
config.status: creating config.h
config.status: executing libtool commands
config.status: executing default commands
=== configuring in contrib/mod_sftp (/usr/local/src/proftpd-1.3.3f/contrib/mod_sftp)
configure: running /bin/sh ./configure '--prefix=/usr/local' '--enable-openssl' '--with-modules=mod_sftp:mod_tls:mod_ldap:mod_quotatab' --cache-file=/dev/null --srcdir=.
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for AIX... no
checking for library containing strerror... none required
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking for ANSI C header files... (cached) yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking whether OpenSSL has crippled AES support... no
checking whether OpenSSL supports SHA256... yes
checking whether OpenSSL supports SHA512... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating mod_sftp.h
makeの進行状況は下記のとおりです。
echo \#define BUILD_STAMP \"`date +"%a %b %e %Y %H:%M:%S %Z"`\" > include/buildstamp.h
cd lib/ && make lib
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/lib' に入ります
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c pr_fnmatch.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c sstrncpy.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c strsep.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c vsnprintf.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c glibc-glob.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c glibc-hstrerror.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c glibc-mkstemp.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c pr-syslog.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c pwgrent.c
ar rc libsupp.a pr_fnmatch.o sstrncpy.o strsep.o vsnprintf.o glibc-glob.o glibc-hstrerror.o glibc-mkstemp.o pr-syslog.o pwgrent.o
ranlib libsupp.a
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/lib' から出ます
cd src/ && make src
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/src' に入ります
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c main.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c timers.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c sets.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c pool.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c privs.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c str.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c table.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c regexp.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c dirtree.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c expr.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c support.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c netaddr.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c inet.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c child.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c parser.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c log.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c lastlog.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c xferlog.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c bindings.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c netacl.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c class.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c scoreboard.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c help.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c feat.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c netio.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c cmd.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c response.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c data.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c modules.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c display.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c auth.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c fsio.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mkhome.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c ctrls.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c event.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c var.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c throttle.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c session.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c trace.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c encode.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c proctitle.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c filter.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c pidfile.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c env.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c version.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c wtmp.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c ftpdctl.c
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/src' から出ます
cd modules/ && make static
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/modules' に入ります
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_core.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_xfer.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_auth_unix.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_auth_file.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_auth.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_ls.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_log.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_site.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_delay.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_facts.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_ident.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_tls.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_ldap.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_quotatab.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_cap.c
srcdir=. ./glue.sh mod_core.o mod_xfer.o mod_auth_unix.o mod_auth_file.o mod_auth.o mod_ls.o mod_log.o mod_site.o mod_delay.o mod_facts.o mod_ident.o mod_sftp.o mod_tls.o mod_ldap.o mod_quotatab.o mod_cap.o
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c module_glue.c
make[2]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/contrib/mod_sftp' に入ります
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c mod_sftp.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c msg.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c packet.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c cipher.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c mac.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c compress.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c kex.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c keys.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c crypto.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c utf8.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c session.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c service.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c kbdint.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c auth-hostbased.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c auth-kbdint.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c auth-password.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c auth-publickey.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c auth.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c disconnect.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c rfc4716.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c keystore.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c channel.c
channel.c:88: 警告: this decimal constant is unsigned only in ISO C90
channel.c: In function ‘handle_channel_window_adjust’:
channel.c:1108: 警告: this decimal constant is unsigned only in ISO C90
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c blacklist.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c interop.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c tap.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c fxp.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c scp.c
ar rc mod_sftp.a mod_sftp.o mod_sftp.o msg.o packet.o cipher.o mac.o compress.o kex.o keys.o crypto.o utf8.o session.o service.o kbdint.o auth-hostbased.o auth-kbdint.o auth-password.o auth-publickey.o auth.o disconnect.o rfc4716.o keystore.o channel.o blacklist.o interop.o tap.o fxp.o scp.o
ranlib mod_sftp.a
make[2]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/contrib/mod_sftp' から出ます
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/modules' から出ます
test -z """" -a -z """" || (cd modules/ && make shared)
test -z """" || (cd locale/ && make locale)
/bin/sh ./libtool --mode=link --tag=CC gcc -L./lib -o proftpd src/main.o src/timers.o src/sets.o src/pool.o src/privs.o src/str.o src/table.o src/regexp.o src/dirtree.o src/expr.o src/support.o src/netaddr.o src/inet.o src/child.o src/parser.o src/log.o src/lastlog.o src/xferlog.o src/bindings.o src/netacl.o src/class.o src/scoreboard.o src/help.o src/feat.o src/netio.o src/cmd.o src/response.o src/data.o src/modules.o src/display.o src/auth.o src/fsio.o src/mkhome.o src/ctrls.o src/event.o src/var.o src/throttle.o src/session.o src/trace.o src/encode.o src/proctitle.o src/filter.o src/pidfile.o src/env.o src/version.o src/wtmp.o modules/mod_core.o modules/mod_xfer.o modules/mod_auth_unix.o modules/mod_auth_file.o modules/mod_auth.o modules/mod_ls.o modules/mod_log.o modules/mod_site.o modules/mod_delay.o modules/mod_facts.o modules/mod_ident.o modules/mod_cap.o modules/mod_quotatab.o modules/mod_ldap.o modules/mod_tls.o modules/module_glue.o contrib/mod_sftp/mod_sftp.a -lsupp -lcrypt -ldl -ldl -lz -lssl -lcrypto -lssl -lcrypto -lcap -lldap -llber -lssl -lcrypto
libtool: link: gcc -o proftpd src/main.o src/timers.o src/sets.o src/pool.o src/privs.o src/str.o src/table.o src/regexp.o src/dirtree.o src/expr.o src/support.o src/netaddr.o src/inet.o src/child.o src/parser.o src/log.o src/lastlog.o src/xferlog.o src/bindings.o src/netacl.o src/class.o src/scoreboard.o src/help.o src/feat.o src/netio.o src/cmd.o src/response.o src/data.o src/modules.o src/display.o src/auth.o src/fsio.o src/mkhome.o src/ctrls.o src/event.o src/var.o src/throttle.o src/session.o src/trace.o src/encode.o src/proctitle.o src/filter.o src/pidfile.o src/env.o src/version.o src/wtmp.o modules/mod_core.o modules/mod_xfer.o modules/mod_auth_unix.o modules/mod_auth_file.o modules/mod_auth.o modules/mod_ls.o modules/mod_log.o modules/mod_site.o modules/mod_delay.o modules/mod_facts.o modules/mod_ident.o modules/mod_cap.o modules/mod_quotatab.o modules/mod_ldap.o modules/mod_tls.o modules/module_glue.o -L/usr/local/src/proftpd-1.3.3f/lib contrib/mod_sftp/mod_sftp.a -lsupp -lcrypt -ldl -lz -lcap -lldap -llber -lssl -lcrypto
contrib/mod_sftp/mod_sftp.a(fxp.o): In function `fxp_handle_create':
fxp.c:(.text+0x9c0b): warning: the use of `mktemp' is dangerous, better use `mkstemp'
cd utils/ && make utils
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/utils' に入ります
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c ftpcount.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c scoreboard.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c misc.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c ftpscrub.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c ftpshut.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c ftptop.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c ftpwho.c
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/utils' から出ます
gcc -L./lib -o ftpcount utils/ftpcount.o utils/scoreboard.o utils/misc.o -lsupp -lcrypt -ldl -ldl -lz
gcc -L./lib -o ftpdctl src/ftpdctl.o src/pool.o src/str.o src/netaddr.o src/log.o src/ctrls.o -lsupp -lcrypt -ldl -ldl -lz -lssl -lcrypto -lssl -lcrypto -lcap -lldap -llber -lssl -lcrypto
gcc -L./lib -o ftpscrub utils/ftpscrub.o utils/scoreboard.o utils/misc.o -lsupp -lcrypt -ldl -ldl -lz
gcc -L./lib -o ftpshut utils/ftpshut.o -lsupp -lcrypt -ldl -ldl -lz
gcc -L./lib -o ftptop utils/ftptop.o utils/scoreboard.o utils/misc.o -lncurses -lsupp -lcrypt -ldl -ldl -lz
gcc -L./lib -o ftpwho utils/ftpwho.o utils/scoreboard.o utils/misc.o -lsupp -lcrypt -ldl -ldl -lz
cd lib/ && make lib
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/lib' に入ります
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c pr_fnmatch.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c sstrncpy.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c strsep.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c vsnprintf.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c glibc-glob.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c glibc-hstrerror.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c glibc-mkstemp.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c pr-syslog.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c pwgrent.c
ar rc libsupp.a pr_fnmatch.o sstrncpy.o strsep.o vsnprintf.o glibc-glob.o glibc-hstrerror.o glibc-mkstemp.o pr-syslog.o pwgrent.o
ranlib libsupp.a
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/lib' から出ます
cd src/ && make src
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/src' に入ります
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c main.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c timers.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c sets.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c pool.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c privs.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c str.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c table.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c regexp.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c dirtree.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c expr.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c support.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c netaddr.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c inet.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c child.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c parser.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c log.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c lastlog.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c xferlog.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c bindings.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c netacl.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c class.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c scoreboard.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c help.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c feat.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c netio.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c cmd.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c response.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c data.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c modules.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c display.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c auth.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c fsio.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mkhome.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c ctrls.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c event.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c var.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c throttle.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c session.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c trace.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c encode.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c proctitle.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c filter.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c pidfile.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c env.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c version.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c wtmp.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c ftpdctl.c
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/src' から出ます
cd modules/ && make static
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/modules' に入ります
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_core.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_xfer.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_auth_unix.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_auth_file.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_auth.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_ls.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_log.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_site.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_delay.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_facts.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_ident.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_tls.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_ldap.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_quotatab.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c mod_cap.c
srcdir=. ./glue.sh mod_core.o mod_xfer.o mod_auth_unix.o mod_auth_file.o mod_auth.o mod_ls.o mod_log.o mod_site.o mod_delay.o mod_facts.o mod_ident.o mod_sftp.o mod_tls.o mod_ldap.o mod_quotatab.o mod_cap.o
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c module_glue.c
make[2]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/contrib/mod_sftp' に入ります
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c mod_sftp.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c msg.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c packet.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c cipher.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c mac.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c compress.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c kex.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c keys.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c crypto.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c utf8.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c session.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c service.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c kbdint.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c auth-hostbased.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c auth-kbdint.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c auth-password.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c auth-publickey.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c auth.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c disconnect.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c rfc4716.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c keystore.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c channel.c
channel.c:88: 警告: this decimal constant is unsigned only in ISO C90
channel.c: In function ‘handle_channel_window_adjust’:
channel.c:1108: 警告: this decimal constant is unsigned only in ISO C90
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c blacklist.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c interop.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c tap.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c fxp.c
gcc -DHAVE_CONFIG_H -DLINUX -I. -I../.. -I../../include -O2 -Wall -c scp.c
ar rc mod_sftp.a mod_sftp.o mod_sftp.o msg.o packet.o cipher.o mac.o compress.o kex.o keys.o crypto.o utf8.o session.o service.o kbdint.o auth-hostbased.o auth-kbdint.o auth-password.o auth-publickey.o auth.o disconnect.o rfc4716.o keystore.o channel.o blacklist.o interop.o tap.o fxp.o scp.o
ranlib mod_sftp.a
make[2]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/contrib/mod_sftp' から出ます
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/modules' から出ます
test -z """" -a -z """" || (cd modules/ && make shared)
test -z """" || (cd locale/ && make locale)
/bin/sh ./libtool --mode=link --tag=CC gcc -L./lib -o proftpd src/main.o src/timers.o src/sets.o src/pool.o src/privs.o src/str.o src/table.o src/regexp.o src/dirtree.o src/expr.o src/support.o src/netaddr.o src/inet.o src/child.o src/parser.o src/log.o src/lastlog.o src/xferlog.o src/bindings.o src/netacl.o src/class.o src/scoreboard.o src/help.o src/feat.o src/netio.o src/cmd.o src/response.o src/data.o src/modules.o src/display.o src/auth.o src/fsio.o src/mkhome.o src/ctrls.o src/event.o src/var.o src/throttle.o src/session.o src/trace.o src/encode.o src/proctitle.o src/filter.o src/pidfile.o src/env.o src/version.o src/wtmp.o modules/mod_core.o modules/mod_xfer.o modules/mod_auth_unix.o modules/mod_auth_file.o modules/mod_auth.o modules/mod_ls.o modules/mod_log.o modules/mod_site.o modules/mod_delay.o modules/mod_facts.o modules/mod_ident.o modules/mod_cap.o modules/mod_quotatab.o modules/mod_ldap.o modules/mod_tls.o modules/module_glue.o contrib/mod_sftp/mod_sftp.a -lsupp -lcrypt -ldl -ldl -lz -lssl -lcrypto -lssl -lcrypto -lcap -lldap -llber -lssl -lcrypto
libtool: link: gcc -o proftpd src/main.o src/timers.o src/sets.o src/pool.o src/privs.o src/str.o src/table.o src/regexp.o src/dirtree.o src/expr.o src/support.o src/netaddr.o src/inet.o src/child.o src/parser.o src/log.o src/lastlog.o src/xferlog.o src/bindings.o src/netacl.o src/class.o src/scoreboard.o src/help.o src/feat.o src/netio.o src/cmd.o src/response.o src/data.o src/modules.o src/display.o src/auth.o src/fsio.o src/mkhome.o src/ctrls.o src/event.o src/var.o src/throttle.o src/session.o src/trace.o src/encode.o src/proctitle.o src/filter.o src/pidfile.o src/env.o src/version.o src/wtmp.o modules/mod_core.o modules/mod_xfer.o modules/mod_auth_unix.o modules/mod_auth_file.o modules/mod_auth.o modules/mod_ls.o modules/mod_log.o modules/mod_site.o modules/mod_delay.o modules/mod_facts.o modules/mod_ident.o modules/mod_cap.o modules/mod_quotatab.o modules/mod_ldap.o modules/mod_tls.o modules/module_glue.o -L/usr/local/src/proftpd-1.3.3f/lib contrib/mod_sftp/mod_sftp.a -lsupp -lcrypt -ldl -lz -lcap -lldap -llber -lssl -lcrypto
contrib/mod_sftp/mod_sftp.a(fxp.o): In function `fxp_handle_create':
fxp.c:(.text+0x9c0b): warning: the use of `mktemp' is dangerous, better use `mkstemp'
cd utils/ && make utils
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/utils' に入ります
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c ftpcount.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c scoreboard.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c misc.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c ftpscrub.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c ftpshut.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c ftptop.c
gcc -DHAVE_CONFIG_H -DLINUX -I.. -I../include -O2 -Wall -c ftpwho.c
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/utils' から出ます
gcc -L./lib -o ftpcount utils/ftpcount.o utils/scoreboard.o utils/misc.o -lsupp -lcrypt -ldl -ldl -lz
gcc -L./lib -o ftpdctl src/ftpdctl.o src/pool.o src/str.o src/netaddr.o src/log.o src/ctrls.o -lsupp -lcrypt -ldl -ldl -lz -lssl -lcrypto -lssl -lcrypto -lcap -lldap -llber -lssl -lcrypto
gcc -L./lib -o ftpscrub utils/ftpscrub.o utils/scoreboard.o utils/misc.o -lsupp -lcrypt -ldl -ldl -lz
gcc -L./lib -o ftpshut utils/ftpshut.o -lsupp -lcrypt -ldl -ldl -lz
gcc -L./lib -o ftptop utils/ftptop.o utils/scoreboard.o utils/misc.o -lncurses -lsupp -lcrypt -ldl -ldl -lz
gcc -L./lib -o ftpwho utils/ftpwho.o utils/scoreboard.o utils/misc.o -lsupp -lcrypt -ldl -ldl -lz
make installの進行状況は下記のとおりです。
cd lib/ && make lib
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/lib' に入ります
make[1]: `lib' に対して行うべき事はありません.
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/lib' から出ます
cd src/ && make src
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/src' に入ります
make[1]: `src' に対して行うべき事はありません.
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/src' から出ます
cd modules/ && make static
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/modules' に入ります
make[2]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/contrib/mod_sftp' に入ります
ar rc mod_sftp.a mod_sftp.o mod_sftp.o msg.o packet.o cipher.o mac.o compress.o kex.o keys.o crypto.o utf8.o session.o service.o kbdint.o auth-hostbased.o auth-kbdint.o auth-password.o auth-publickey.o auth.o disconnect.o rfc4716.o keystore.o channel.o blacklist.o interop.o tap.o fxp.o scp.o
ranlib mod_sftp.a
make[2]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/contrib/mod_sftp' から出ます
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/modules' から出ます
test -z """" -a -z """" || (cd modules/ && make shared)
test -z """" || (cd locale/ && make locale)
/bin/sh ./libtool --mode=link --tag=CC gcc -L./lib -o proftpd src/main.o src/timers.o src/sets.o src/pool.o src/privs.o src/str.o src/table.o src/regexp.o src/dirtree.o src/expr.o src/support.o src/netaddr.o src/inet.o src/child.o src/parser.o src/log.o src/lastlog.o src/xferlog.o src/bindings.o src/netacl.o src/class.o src/scoreboard.o src/help.o src/feat.o src/netio.o src/cmd.o src/response.o src/data.o src/modules.o src/display.o src/auth.o src/fsio.o src/mkhome.o src/ctrls.o src/event.o src/var.o src/throttle.o src/session.o src/trace.o src/encode.o src/proctitle.o src/filter.o src/pidfile.o src/env.o src/version.o src/wtmp.o modules/mod_core.o modules/mod_xfer.o modules/mod_auth_unix.o modules/mod_auth_file.o modules/mod_auth.o modules/mod_ls.o modules/mod_log.o modules/mod_site.o modules/mod_delay.o modules/mod_facts.o modules/mod_ident.o modules/mod_cap.o modules/mod_quotatab.o modules/mod_ldap.o modules/mod_tls.o modules/module_glue.o contrib/mod_sftp/mod_sftp.a -lsupp -lcrypt -ldl -ldl -lz -lssl -lcrypto -lssl -lcrypto -lcap -lldap -llber -lssl -lcrypto
libtool: link: gcc -o proftpd src/main.o src/timers.o src/sets.o src/pool.o src/privs.o src/str.o src/table.o src/regexp.o src/dirtree.o src/expr.o src/support.o src/netaddr.o src/inet.o src/child.o src/parser.o src/log.o src/lastlog.o src/xferlog.o src/bindings.o src/netacl.o src/class.o src/scoreboard.o src/help.o src/feat.o src/netio.o src/cmd.o src/response.o src/data.o src/modules.o src/display.o src/auth.o src/fsio.o src/mkhome.o src/ctrls.o src/event.o src/var.o src/throttle.o src/session.o src/trace.o src/encode.o src/proctitle.o src/filter.o src/pidfile.o src/env.o src/version.o src/wtmp.o modules/mod_core.o modules/mod_xfer.o modules/mod_auth_unix.o modules/mod_auth_file.o modules/mod_auth.o modules/mod_ls.o modules/mod_log.o modules/mod_site.o modules/mod_delay.o modules/mod_facts.o modules/mod_ident.o modules/mod_cap.o modules/mod_quotatab.o modules/mod_ldap.o modules/mod_tls.o modules/module_glue.o -L/usr/local/src/proftpd-1.3.3f/lib contrib/mod_sftp/mod_sftp.a -lsupp -lcrypt -ldl -lz -lcap -lldap -llber -lssl -lcrypto
contrib/mod_sftp/mod_sftp.a(fxp.o): In function `fxp_handle_create':
fxp.c:(.text+0x9c0b): warning: the use of `mktemp' is dangerous, better use `mkstemp'
cd utils/ && make utils
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/utils' に入ります
make[1]: `utils' に対して行うべき事はありません.
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/utils' から出ます
/usr/bin/install -c -s -o root -g root -m 0755 proftpd /usr/local/sbin/proftpd
if [ -f /usr/local/sbin/in.proftpd ] ; then \
rm -f /usr/local/sbin/in.proftpd ; \
fi
ln -s proftpd /usr/local/sbin/in.proftpd
chown -h root:root /usr/local/sbin/in.proftpd
test -z """" -a -z """" -a -z "contrib/mod_sftp" || (cd modules/ && make install)
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/modules' に入ります
test -z """" || /bin/sh ../libtool --mode=install --tag=CC /usr/bin/install -c -s -o root -g root -m 0755 "" /usr/local/libexec
make[2]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/contrib/mod_sftp' に入ります
/usr/bin/install -c -o root -g root -m 0644 dhparams.pem /usr/local/etc/dhparams.pem
/usr/bin/install -c -o root -g root -m 0644 blacklist.dat /usr/local/etc/blacklist.dat
if [ -f mod_sftp.la ] ; then \
/bin/sh ../../libtool --mode=install --tag=CC /usr/bin/install -c -s -o root -g root -m 0755 mod_sftp.la /usr/local/libexec ; \
fi
make[2]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/contrib/mod_sftp' から出ます
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/modules' から出ます
/usr/bin/install -c -s -o root -g root -m 0755 ftpcount /usr/local/bin/ftpcount
/usr/bin/install -c -s -o root -g root -m 0755 ftpdctl /usr/local/bin/ftpdctl
/usr/bin/install -c -s -o root -g root -m 0755 ftpscrub /usr/local/sbin/ftpscrub
/usr/bin/install -c -s -o root -g root -m 0755 ftpshut /usr/local/sbin/ftpshut
/usr/bin/install -c -s -o root -g root -m 0755 ftptop /usr/local/bin/ftptop
/usr/bin/install -c -s -o root -g root -m 0755 ftpwho /usr/local/bin/ftpwho
/usr/bin/install -c -o root -g root -m 0755 src/prxs /usr/local/bin/prxs
if [ ! -f /usr/local/etc/proftpd.conf ] ; then \
/usr/bin/install -c -o root -g root -m 0644 \
./sample-configurations/basic.conf \
/usr/local/etc/proftpd.conf ; \
fi
/usr/bin/install -c -o root -g root -m 0644 ./src/ftpdctl.8 /usr/local/share/man/man8
/usr/bin/install -c -o root -g root -m 0644 ./src/proftpd.8 /usr/local/share/man/man8
/usr/bin/install -c -o root -g root -m 0644 ./utils/ftpscrub.8 /usr/local/share/man/man8
/usr/bin/install -c -o root -g root -m 0644 ./utils/ftpshut.8 /usr/local/share/man/man8
/usr/bin/install -c -o root -g root -m 0644 ./utils/ftpcount.1 /usr/local/share/man/man1
/usr/bin/install -c -o root -g root -m 0644 ./utils/ftptop.1 /usr/local/share/man/man1
/usr/bin/install -c -o root -g root -m 0644 ./utils/ftpwho.1 /usr/local/share/man/man1
/usr/bin/install -c -o root -g root -m 0644 ./src/xferlog.5 /usr/local/share/man/man5
cd lib/ && make install
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/lib' に入ります
make[1]: `install' に対して行うべき事はありません.
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/lib' から出ます
/usr/bin/install -c -o root -g root -m 0644 config.h /usr/local/include/proftpd/config.h
cd include/ && make install
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/include' に入ります
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/include' から出ます
/usr/bin/install -c -o root -g root -m 0644 proftpd.pc /usr/local/lib/pkgconfig/proftpd.pc
test -z """" || (cd locale/ && make install)
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/lib' に入ります
make[1]: `lib' に対して行うべき事はありません.
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/lib' から出ます
cd src/ && make src
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/src' に入ります
make[1]: `src' に対して行うべき事はありません.
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/src' から出ます
cd modules/ && make static
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/modules' に入ります
make[2]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/contrib/mod_sftp' に入ります
ar rc mod_sftp.a mod_sftp.o mod_sftp.o msg.o packet.o cipher.o mac.o compress.o kex.o keys.o crypto.o utf8.o session.o service.o kbdint.o auth-hostbased.o auth-kbdint.o auth-password.o auth-publickey.o auth.o disconnect.o rfc4716.o keystore.o channel.o blacklist.o interop.o tap.o fxp.o scp.o
ranlib mod_sftp.a
make[2]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/contrib/mod_sftp' から出ます
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/modules' から出ます
test -z """" -a -z """" || (cd modules/ && make shared)
test -z """" || (cd locale/ && make locale)
/bin/sh ./libtool --mode=link --tag=CC gcc -L./lib -o proftpd src/main.o src/timers.o src/sets.o src/pool.o src/privs.o src/str.o src/table.o src/regexp.o src/dirtree.o src/expr.o src/support.o src/netaddr.o src/inet.o src/child.o src/parser.o src/log.o src/lastlog.o src/xferlog.o src/bindings.o src/netacl.o src/class.o src/scoreboard.o src/help.o src/feat.o src/netio.o src/cmd.o src/response.o src/data.o src/modules.o src/display.o src/auth.o src/fsio.o src/mkhome.o src/ctrls.o src/event.o src/var.o src/throttle.o src/session.o src/trace.o src/encode.o src/proctitle.o src/filter.o src/pidfile.o src/env.o src/version.o src/wtmp.o modules/mod_core.o modules/mod_xfer.o modules/mod_auth_unix.o modules/mod_auth_file.o modules/mod_auth.o modules/mod_ls.o modules/mod_log.o modules/mod_site.o modules/mod_delay.o modules/mod_facts.o modules/mod_ident.o modules/mod_cap.o modules/mod_quotatab.o modules/mod_ldap.o modules/mod_tls.o modules/module_glue.o contrib/mod_sftp/mod_sftp.a -lsupp -lcrypt -ldl -ldl -lz -lssl -lcrypto -lssl -lcrypto -lcap -lldap -llber -lssl -lcrypto
libtool: link: gcc -o proftpd src/main.o src/timers.o src/sets.o src/pool.o src/privs.o src/str.o src/table.o src/regexp.o src/dirtree.o src/expr.o src/support.o src/netaddr.o src/inet.o src/child.o src/parser.o src/log.o src/lastlog.o src/xferlog.o src/bindings.o src/netacl.o src/class.o src/scoreboard.o src/help.o src/feat.o src/netio.o src/cmd.o src/response.o src/data.o src/modules.o src/display.o src/auth.o src/fsio.o src/mkhome.o src/ctrls.o src/event.o src/var.o src/throttle.o src/session.o src/trace.o src/encode.o src/proctitle.o src/filter.o src/pidfile.o src/env.o src/version.o src/wtmp.o modules/mod_core.o modules/mod_xfer.o modules/mod_auth_unix.o modules/mod_auth_file.o modules/mod_auth.o modules/mod_ls.o modules/mod_log.o modules/mod_site.o modules/mod_delay.o modules/mod_facts.o modules/mod_ident.o modules/mod_cap.o modules/mod_quotatab.o modules/mod_ldap.o modules/mod_tls.o modules/module_glue.o -L/usr/local/src/proftpd-1.3.3f/lib contrib/mod_sftp/mod_sftp.a -lsupp -lcrypt -ldl -lz -lcap -lldap -llber -lssl -lcrypto
contrib/mod_sftp/mod_sftp.a(fxp.o): In function `fxp_handle_create':
fxp.c:(.text+0x9c0b): warning: the use of `mktemp' is dangerous, better use `mkstemp'
cd utils/ && make utils
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/utils' に入ります
make[1]: `utils' に対して行うべき事はありません.
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/utils' から出ます
/usr/bin/install -c -s -o root -g root -m 0755 proftpd /usr/local/sbin/proftpd
if [ -f /usr/local/sbin/in.proftpd ] ; then \
rm -f /usr/local/sbin/in.proftpd ; \
fi
ln -s proftpd /usr/local/sbin/in.proftpd
chown -h root:root /usr/local/sbin/in.proftpd
test -z """" -a -z """" -a -z "contrib/mod_sftp" || (cd modules/ && make install)
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/modules' に入ります
test -z """" || /bin/sh ../libtool --mode=install --tag=CC /usr/bin/install -c -s -o root -g root -m 0755 "" /usr/local/libexec
make[2]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/contrib/mod_sftp' に入ります
/usr/bin/install -c -o root -g root -m 0644 dhparams.pem /usr/local/etc/dhparams.pem
/usr/bin/install -c -o root -g root -m 0644 blacklist.dat /usr/local/etc/blacklist.dat
if [ -f mod_sftp.la ] ; then \
/bin/sh ../../libtool --mode=install --tag=CC /usr/bin/install -c -s -o root -g root -m 0755 mod_sftp.la /usr/local/libexec ; \
fi
make[2]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/contrib/mod_sftp' から出ます
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/modules' から出ます
/usr/bin/install -c -s -o root -g root -m 0755 ftpcount /usr/local/bin/ftpcount
/usr/bin/install -c -s -o root -g root -m 0755 ftpdctl /usr/local/bin/ftpdctl
/usr/bin/install -c -s -o root -g root -m 0755 ftpscrub /usr/local/sbin/ftpscrub
/usr/bin/install -c -s -o root -g root -m 0755 ftpshut /usr/local/sbin/ftpshut
/usr/bin/install -c -s -o root -g root -m 0755 ftptop /usr/local/bin/ftptop
/usr/bin/install -c -s -o root -g root -m 0755 ftpwho /usr/local/bin/ftpwho
/usr/bin/install -c -o root -g root -m 0755 src/prxs /usr/local/bin/prxs
if [ ! -f /usr/local/etc/proftpd.conf ] ; then \
/usr/bin/install -c -o root -g root -m 0644 \
./sample-configurations/basic.conf \
/usr/local/etc/proftpd.conf ; \
fi
/usr/bin/install -c -o root -g root -m 0644 ./src/ftpdctl.8 /usr/local/share/man/man8
/usr/bin/install -c -o root -g root -m 0644 ./src/proftpd.8 /usr/local/share/man/man8
/usr/bin/install -c -o root -g root -m 0644 ./utils/ftpscrub.8 /usr/local/share/man/man8
/usr/bin/install -c -o root -g root -m 0644 ./utils/ftpshut.8 /usr/local/share/man/man8
/usr/bin/install -c -o root -g root -m 0644 ./utils/ftpcount.1 /usr/local/share/man/man1
/usr/bin/install -c -o root -g root -m 0644 ./utils/ftptop.1 /usr/local/share/man/man1
/usr/bin/install -c -o root -g root -m 0644 ./utils/ftpwho.1 /usr/local/share/man/man1
/usr/bin/install -c -o root -g root -m 0644 ./src/xferlog.5 /usr/local/share/man/man5
cd lib/ && make install
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/lib' に入ります
make[1]: `install' に対して行うべき事はありません.
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/lib' から出ます
/usr/bin/install -c -o root -g root -m 0644 config.h /usr/local/include/proftpd/config.h
cd include/ && make install
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/include' に入ります
make[1]: ディレクトリ `/usr/local/src/proftpd-1.3.3f/include' から出ます
/usr/bin/install -c -o root -g root -m 0644 proftpd.pc /usr/local/lib/pkgconfig/proftpd.pc
test -z """" || (cd locale/ && make install)
●インストール(CentOS 7)
LDAPとも連携をしたいのでproftpd-ldapもインストールします。
# yum install install proftpd proftpd-ldapLDAPの設定は「●ldap上のアカウントを使用して認証する」を参照してください。
また、LDAP上のアカウントでログインできない場合、「●SSHでログインできるか確認する」を参照してください。
●設定
ProFTPD をインストールするとデフォルトの設定ファイルproftpd.confが作成されます。ProFTPDの実行にはこの設定ファイルを使います。
インストール方法によりディレクトリが異なるので読み替えること ※ソースからインストールした場合 # vi /usr/local/etc/proftpd.conf ※パッケージでインストールした場合 # vi /etc//proftpd.conf # This is a basic ProFTPD configuration file (rename it to # 'proftpd.conf' for actual use. It establishes a single server # 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" ← コメントアウト #ServerName "ProFTPD Server" ← サーバ接続時に表示される ServerIdent on "BIGBANG ProFTPD Server" ↑ 「ServerName」ではProftpdのバージョンが表示されてしまうので、この方法を選択 ServerType standalone DefaultServer on # Port 21 is the standard FTP port. Port 21 # Don't use IPv6 support by default. UseIPv6 off # Umask 022 is a good standard umask to prevent new dirs and files # from being group and world writable. Umask 022 # 場合によっては下記の設定の方がよいかも # Umask 077 # 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 # Set the user and group under which the server will run. User nobody #Group nogroup ← コメントアウト Group nobody ↑ nogroupグループは存在しないためnobodyグループに変更 # To cause every FTP user to be "jailed" (chrooted) into their home # directory, uncomment this line. #DefaultRoot ~ DefaultRoot ~ !wheel ↑ wheelグループ以外のユーザにはホームディレクトリ以下だけアクセスを許可 # Normally, we want files to be overwriteable. AllowOverwrite on # Bar use of SITE CHMOD by default <Limit SITE_CHMOD> DenyAll </Limit> MasqueradeAddress www.bigbang.dyndns.org ↑ Passiveモードでクライアントに知らせるサーバーのIPアドレス(ホスト名) PassivePorts 65500 65535 ← Passiveモードで使用するポート番号の最小値と最大値 UseReverseDNS off ← DNSの逆引きをしない。時間短縮にはさほど効果なし IdentLookups off ← リモートユーザー名を確認しない。時間短縮に効果絶大 ListOptions “-a” ← LIST コマンドオプション(ドットファイルを見せる場合) TimesGMT off ← 日本時間を表示する ##### 詳細ログの取得設定 ここから ##### ##### 新たにログを出力するよう設定した場合、ローテーションの設定も変更すること ##### ##### # mkdir /var/log/proftpd としてディレクトリを作成する(存在する場合は不要) ##### LogFormat allinfo "%t : %u (%a [%h]) : [%s], %T, %m (%f)" LogFormat write "%t : %u : %F (%a)" LogFormat read "%t : %u : %F (%a)" LogFormat auth "%t : %u (%a [%h])" Systemlog /var/log/proftpd/proftpd.log ← /var/log/messagesから変更 ExtendedLog /var/log/proftpd/xferlog ALL allinfo ExtendedLog /var/log/proftpd/writelog WRITE write ExtendedLog /var/log/proftpd/readlog READ read ExtendedLog /var/log/proftpd/authlog AUTH auth ##### 詳細ログの取得設定 ここまで ##### <IfModule mod_tls.c> TLSEngine on ← TLS接続を行う TLSLog /var/log/proftpd.log ← ログファイルを指定する TLSProtocol SSLv23 ← SSL/TLSプロトコルのバージョンを指定する TLSCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP ↑ 暗号化方式を設定する TLSRequired on ← TLS接続のみ行う TLSVerifyClient off ← クライアント証明書を使用しない TLSRSACertificateFile /usr/local/etc/ssl.crt/server.crt ← 証明書を指定する TLSRSACertificateKeyFile /usr/local/etc/ssl.key/server.key ← 秘密鍵を指定する </IfModule> ##### LDAPとの連携関連 ここから ##### LDAPServer 127.0.0.1 LDAPDNInfo cn=Manager,dc=bigbang,dc=dyndns,dc=org ********* LDAPDoAuth on "dc=bigbang,dc=dyndns,dc=org" CreateHome on skel /etc/skel ##### LDAPとの連携関連 ここまで ##### # A basic anonymous configuration, no upload directories. If you do not # want anonymous users, simply delete this entire <Anonymous> section. <Anonymous ~ftp> ← 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> #</Anonymous>「proftpd.conf」 に記述ミスがないかをチェックします。
# proftpd -t -c /usr/local/etc/proftpd.conf Checking syntax of configuration file Syntax check complete.
●その他の設定
Anonymous FTPの設定方法
Turbolinux 11 Server の /etc/proftpd.conf には、すでに匿名 FTP サイトを公開するための設定がコメントとして記述されています。以下のように、<Anonymous ~ftp>と</Anonymous>で囲まれた箇所が匿名FTPサイトを公開するための記述です。ただし、初期設定では匿名FTPサイトは機能していません。解説する手順に従い、匿名FTPサイトを有効にする必要があります。
<Anonymous ~ftp> User ftp Group ftp AccessGrantMsg "Anonymous login ok, restrictions apply." RequireValidShell off UserAlias anonymous ftp MaxClients 10 "Sorry, max %m users -- try again later" DisplayLogin /welcome.msg DisplayFirstChdir .message DisplayReadme README* DirFakeUser on ftp DirFakeGroup on ftp <Limit WRITE SITE_CHMOD> DenyAll </Limit> WtmpLog off ExtendedLog /var/log/proftpd/access.log WRITE,READ default ExtendedLog /var/log/proftpd/auth.log AUTH auth </Anonymous>匿名FTPサイトを有効にするには、上記行のコメント記号(#)削除します。次にRequireValidShellディレクティブの値をoffとして追記します。
RequireValidShell off次に変更を反映するためにproftpdを再起動します。
# /etc/init.d/proftpd restartこれで、匿名FTP サイトへのアクセスが有効になりました。FTPクライアントで匿名FTPサーバーへログインするには、ユーザー名にanonymousまたはftp、パスワードには慣例としてE-mailアドレスを入力します。以下は、lftpクライアントでログインした例です。
$ lftp ftp@ftp.example.com Password: drwxr-xr-x 4 ftp ftp 4096 Nov 6 06:00 . drwxr-xr-x 4 ftp ftp 4096 Nov 6 06:00 .. drwxr-xr-x 2 ftp ftp 4096 Oct 19 10:59 pub d-wx-wx--x 2 ftp ftp 4096 Nov 14 00:52 uploads -rw-r--r-- 1 ftp ftp 224 Jun 19 09:34 welcome.msgユーザーのログインディレクトリは、/var/ftpとなります。proftpdは、このディレクトリにchrootするため、匿名FTPサイトにログインしたユーザーは、/var/ftpディレクトリがルートディレクトリに見えます。
もし、匿名FTPサイトだけを提供したいのであれば、server configコンテキストに以下のLimitディレクティブを記述します。
<Limit LOGIN> DenyAll </Limit>次に、Anonymousディレクティブ内に以下のLimitディレクティブを記述します。
<Limit LOGIN> AllowAll </Limit>これにより、Turbolinux 11 Serverにアカウントを持つユーザーであっても、自分のホームディレクトリへのログインは拒否されるようになります。
その他、Anonymousディレクティブで使用されているディレクティブの意味は以下の通りです。
Anonymous root-directory
匿名FTPサイトとして公開するルートディレクトリをroot-directoryに指定します。~を記述した場合は、続くユーザーのホームディレクトリを意味します。この例では、~ftpと指定されていますので、ftpユーザーのホームディレクトリをあらわします。Turbolinux 11 Serverの/etc/passwdファイルには以下のように記述されているため、/var/ftpディレクトリが匿名FTPサイトのルートディレクトリとなります。
ftp:x:14:50:FTP User:/var/ftp:
User userid / Group groupid
ProFTPDのサーバープロセスを実行するユーザーとグループを指定します。この例では、ftpと指定されていますので、ユーザーが匿名FTPユーザーでログインすると、proftpdデーモンのUIDとGIDはftpに切り替わります。
UserAlias login-user userid
システムに存在するユーザーに対するエイリアスを指定することができます。login-userで指定したユーザー名でFTPサーバーにログインすると、あたかも実際のユーザーであるuseridでログインしたかのように動作します。この例では、ftpユーザーに anonymousというエイリアスを定義していますので、anonymousユーザーで匿名FTPサイトへログインできるようになります。
RequireValidShell on|off
ProFTPDの初期設定では、ユーザーのログインシェルが/etc/passwdに設定されていなければログインを拒否しますが、この設定をoffにするとログインは許可されます。匿名FTPサイトを有効にするには記述します。
MaxClients number|none [message]
Anonymous FTPサーバーへログインすることが可能なクライアントの最大数を指定しています。Turbolinux 11 Serverの初期設定では、10が指定されています。この数を超えるクライアントがログインを試みたときには、以下のメッセージを表示し切断します。
Sorry, max 10 users -- try again later
DisplayLogin filename
ユーザーがログインしたときに表示するメッセージを記述したテキストファイル名を指定します。初期設定は、/var/ftp/welcome.msgです。
DisplayFirstChdir filename
ディレクトリを変更したときに表示するメッセージを記述したテキストファイル名を指定します。初期設定は、.messageです。
Limit command [command2 ..]
Limitディレクティブは、FTPコマンドにアクセス制限をかけるために使用します。この例では、ディレクトリへの書き込みを完全に拒否する設定をしています。
/var/ftp/uploadsディレクトリについて
匿名FTPサイトを有効にすると、Anonymousディレクティブの指定に従い、ftpユーザーのホームディレクトリ/var/ftpがルートディレクトリとして公開されます。Turbolinux 11 Serverでは、このディレクトリに以下2つのディレクトリがあらかじめ存在しています。
drwxr-xr-x 2 root root 4096 2007-10-19 19:59 pub/ d-wx-wx--x 2 ftp ftp 4096 2007-11-14 09:52 uploads/この中で、uploadsディレクトリは、匿名FTPユーザーにファイルのアップロードを許可するディレクトリとして使用されることがあります。一般的には、不特定多数のユーザーにファイルのアップロードを許可することはありませんが、必要に応じて、このディレクトリを利用することも可能です。Turbolinux 11 Serverの初期設定では、以下の記述がコメントとして用意されています。アップロードを許可するには、<Directory uploads/*>から</Limit>のコメント記号を削除します。
<Anonymous ~ftp> 省略... <Limit WRITE> DenyAll </Limit> <Directory uploads/*> AllowOverwrite no <Limit READ> DenyAll <</Limit> <Limit STOR> AllowAll </Limit> </Directory> </Anonymous><Directory uploads/*>>でuploadsディレクトリに対する設定を行うことを定義しています。そして、このDirectoryディレクティブのLimitディレクティブでは、ファイルの読み出しを行うFTPコマン(READ)を全て拒否しています。しかし、次のLimitディレクティブでファイルのアップロード(STOR)に関するコマンドを許可しています。したがって、この設定例では、匿名FTPユーザーがuploadsディレクトリへファイルをアップロードすることを可能にしますが、uploadsディレクトリにアップロードされたファイルを読み出す権限までは与えていないことになります。
アクセスユーザの制限
localhostと192.168.0.0/24, 192.168.1.0/24からのみアクセスを許可し、それ以外は拒否するように設定。
<Limit LOGIN> Order allow, deny Allow from 127.0.0.1, 192.168.0.0/24, 192.168.1.0/24 Deny from all </Limit LOGIN>
Resume機能のサポート
大きなサイズのファイルのダウンロードやアップロード中に回線断等のトラブルにより転送が中断してしまった場合、クライアントがサポートしていれば、中断点から再開できるのが、Resume機能です。ダウンロードはデフォルトで機能が有効になっていますが、アップロードは無効になっています。有効にしたい場合は下記設定を追加します。
ただし、アップロードを許可すると言うことは、RESTコマンドによって再開するので、クライアントのオペミス(同一名称のままアップロード)で、先に保存されたファイルが壊れたりすることがあります。特にanonymousでは絶対に使用しないほうが良いでしょう。
# Allow clients to resume downloads (default on) AllowRetrieveRestart on # Allow clients to resume uploads (default off) AllowStoreRestart on
アップロード中断ファイルの自動削除
大きなファイルをアップロードすることがない場合は意味がありませんが、アップロード中に回線断等ではなく、クライアント操作で転送を中断(ABORコマンドによる中断)した場合に、下記設定をしておくと中途半端なファイルを自動的に削除します。上記のAllowStoreRestartとは背反です。
# Enable automatic deletion of partially uploaded files (default off) DeleteAbortedStores on
同一ホストからの同時接続数の制限
ダウンロードツール等を使用した場合、複数セッションを設定して高速でダウンロードできるようになりますが、特定ユーザに細い回線を占有されてしまいます。これを制限するのが下記の設定で、数字は同時接続数で、デフォルトは無制限です。制限されたときは、下記メッセージが返送されます。
# The maximum number of clients allowed to connect per host.(default none: no limit) MaxClientsPerHost 1 [デフォルトメッセージ] Results in: 530 Sorry, the maximum number clients (%m) from your host are already connected. (%mは制限値)
アップロードファイル容量の制限
アップロードを許可している場合、大容量のファイルをアップロードや、anonymousによるいたずらを防止することができます。最悪はHDDを使い切ってシステムロックすることも考えられますので、設定しておいたほうが良いでしょう。
ただし、この設定で制限できるのはファイルの大きさだけなので、quotaでHDDの使用量制限を併用することを推奨します。なお、ダウンロードの制限もMaxRetrieveFileSizeで可能ですが、あまり意味はありません。
下記の上の例は全てを3MByteに制限する例であり、下の例はanonymousのみ50KByteに制限する例である。単位は、"Gb"、"Mb"、"Kb"、"B"(bytes)です。
# Restrict upload to only 3 megabytes MaxStoreFileSize 3 Mb # Restrict anonymous uploads to 50k, but allow unlimited upload size for everyone else MaxStoreFileSize 50 Kb user anonymous MaxStoreFileSize *
タイマ関係の設定
タイマ関係としては、以下が設定可能ですが、家庭内で使用するには基本的にデフォルト値で問題ないなので、特に追加記述は不要です。各自の動作環境を想定して変更すると良い。変更する場合は、TimeoutStalledで、ストール(止まった)したままでいつまでも繋いでおく必要もないので、10分(600)程度で自動切断する方がよい。トータル時間を制限するなら、TimeoutSessionを指定することにより、転送の遅いユーザを切断することもできます。
なお、ここで無制限としても、巨大なファイルを細い回線で時間をかけて転送している場合、転送が切れてしまう(転送完了後に切断されることが多いはず)ことがある。これは、クライアントの実装にもよりますが、データ転送中は制御コネクションにデータが流れないためルータのNATテーブルが消えてしまうことから発生します。制御コネクションのKeepaliveとしてNOOPコマンドを投げているクライアントもあります。
- TimeoutIdle(default:600)--制御・データコネクションのいずれかからもデータを全く受け取らないまま、接続を維持している時間。
- TimeoutLogin(default:300)--クライアントが認証に最大何秒間費やせるかを指定。
- TimeoutNoTransfer(default:600)--認証後に、データ転送(ファイル転送やリストを取得)をしないで、最大何秒間接続していられるかを指定。
- TimeoutSession(default:none)--認証後に、制御コネクションを保持している時間を指定。デフォルトは無制限。
- TimeoutStalled(default:0 {no limit})-- サーバとFTPクライアント間で、実際のデータ転送をしない(つまり、止まったまま)で最大何秒間データコネクションを維持していられるかを指定。デフォルトは無制限の"0"。
# Sets the idle connection timeout (default: 600) TimeoutIdle 600 # Sets the login timeout (default: 300) TimeoutLogin 300 # Sets the connection without transfer timeout (default: 600) TimeoutNoTransfer 600 # Sets a timeout for an entire session (default: none) TimeoutSession none # Sets the timeout on stalled downloads (default: 0 {no limit}) TimeoutStalled 600
転送量の制御
従来、転送量の制御は、RateRead*とRateWrite*で行えるようになっていましたが、1.2.8rc1から本ディレクティブは廃止されTransferRate というディレクティブに変更、集約されました。
TransferRateディレクティブのパラメータは以下のとおりであり、コンテキストはserver config、<VirtualHost>、<Global>、<Anonymous>、<Directory>、.ftpaccessなので、制御単位に合わせて適宜設定します。
TransferRate [ cmds] [ kilobytes-per-sec[:free-bytes]] [ ["user"|"group"|"class" expression]]
- cmds -- 制御対象のコマンドを指定する。対象コマンドは、RETR、STOR、STOU、APPEであり、複数指定する場合は「,」区切りで記述する。ダウンロード系は「RETR」を、アップロード系は「STOR,STOU,APPE」とすればよい。
- kilobytes-per-sec -- 読んで字のごとく、転送制御量をKByte/s単位で指定する。
- free-bytes -- 本パラメータは、「kilobytes-per-sec」に続けて、「:1024」のようにコロンを挟んで指定する。このパラメータが指定されていると、ここで指定した容量まではkilobytes-per-sec による転送量制御が効かなくなる。一般的には、転送量制御は大きなファイルの転送を平均化するのが目的のため、このパラメータで小さなファイルは一気に送ってしまうことができる。
- "user"|"group"|"class" expression -- 転送量制御の対象を、user、group、class で指定する。それぞれ、後ろに対象を記述する。「group !wheel」とすれば、wheel グループ以外が対象となる。classについては、別途 class ディレクティブで対象を指定する。
TransferRate RETR 5.0:1024 group !wheel[ Class ディレクティブ]
Class ディレクティブは、server configに下記のように記述します。
Class [ "name" limit|regex|ip value]
- name -- クラスを識別するための適当な名前を指定
- limit value -- コネクションの最大数を指定。(デフォルト:100)
- regex value -- このクラスとして扱うホスト名を指定。ワイルドカード可。
- ip value -- このクラスとして扱うネットワークを IP/ネットマスクで指定
Classes on Class local limit 100 Class default limit 10 Class local regex *.hoge.com Class local ip 172.16.1.0/24
帯域の制御
下記の設定例では、/tmp/frpdir2ディレクトリ内のファイルをダウンロードしようとすると、おおよそ最大1000KByte/sに制限されます。
<Directory /tmp/frpdir2> TransferRate RETR 1000 </Directory>下記の設定例では、wheelグループ以外は最大5KByte/sに制限されますが、1kbyte以下のファイルはこの限りではないということを示します。
TransferRate RETR 5.0:1024 group !wheel
●サーバ証明書の作成
ProFTPDのSSL/TLS暗号化通信を有効にするために必要なサーバ証明書を作成します。必要なファイルは、CSRファイル(サーバの証明書発行の署名要求)と秘密鍵と証明書ですが、このうちの証明書は自己署名した電子証明書を使うこととします。
SSL証明書の作成方法は下記を参照してください。
サーバ証明書の作成
●SSLへの対応
参考URL:proftpd.confの設定
/etc/proftpd.confのSSLに関係する設定を下記のようにしました。
# vi /etc/proftpd.conf (・・途中省略・・) # TLS (http://www.castaglia.org/proftpd/modules/mod_tls.html) # SSL/TLSで接続するための設定です # 静的にmod_tlsを組み込んでいるのでLoadModuleの設定はしていません。 <IfModule mod_tls.c> # SSL/TLS protocol engineの使用許可 TLSEngine on # SSL/TLSを強制しない。通常のFTP接続も接続可能。 TLSRequired off # 証明書と秘密鍵を指定。 TLSRSACertificateFile /etc/pki/tls/certs/proftpd.crt TLSRSACertificateKeyFile /etc/pki/tls/certs/server.key # NoCertRequest:証明書の警告を表示させない。 # NoSessionReuseRequired:SSLセッションの再利用を許可しない。 TLSOptions NoCertRequest NoSessionReuseRequired # SSL/TLS 接続の暗号強度を上げます TLSCipherSuite HIGH:!ADH:!DES # SSL/TLSプロトコルバージョンを指定。SSLv3及びTLSv1の両方を許可する互換性モードを指定。 TLSProtocol SSLv23 # TLSv1のみとする場合。 # TLSProtocol TLSv1 TLSOptions NoCertRequest # クライアント証明書を使用しない。 TLSVerifyClient off # 1つのファイルをデータ転送中にリネゴシエーションを行なわない。 TLSRenegotiate none # mod_tlsのログを取得。 TLSLog /var/log/proftpd/tls.log # TLSSessionCacheをファイルとして設定します。 <IfModule mod_tls_shmcache.c> TLSSessionCache shm:/file=/var/run/proftpd/sesscache </IfModule> </IfModule> (・・途中省略・・)FFFTPからの接続確認は「●ftps接続の確認」を参照してください。
また、ファイアーウォールを設定している時はパッシブポートで接続できるように設定してください。
●起動
ProFTPD の自動起動スクリプトは ProFTPD のソースファイル(contrib/dist/rpm/proftpd.init.d)に含まれています。これを/etc/rc.d/init.d/proftpdファイルとしてコピーします。
# cp contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpd
# chmod 755 /etc/rc.d/init.d/proftpd
# chkconfig --add proftpd
# service proftpd start
Starting proftpd: 127.0.0.1 - 127.0.0.1:21 masquerading as 192.168.0.1
[ OK ]
●ldap上のアカウントを使用して認証する
前提条件はldapサーバーが構築済みで、ldapサーバーの設定は以下とします。
ldapサーバーのIPアドレス:192.168.0.1 ldapドメイン名:bigbang.dyndns.org/etc/proftpd.confを編集します。
# /etc/proftpd.conf LDAPServer LDAPサーバーのipアドレス LDAPDNInfo ldapとのbindに使用するldapユーザー情報 パスワード LDAPDoAuth on "ldapドメイン名" 例: LDAPServer 192.168.0.1 LDAPDNInfo uid=admin,ou=Users,dc=bigbang,dc=dyndns,dc=org password LDAPDoAuth on "dc=bigbang,dc=dyndns,dc=org"proftpdを再起動します。
# service proftpd restartLDAP上のアカウントでログインできない場合、「●SSHでログインできるか確認する」を参照してください。
ディレクティブ | 意味 |
---|---|
LDAPServer | LDAPサーバーのホスト名または IPアアドレスを指定。「10.1.1.15:636」 のような記述も可。スペースで区切り複数のサーバーを指定すると、応答がない場合は記述順に参照する(冗長化)。 |
LDAPAuthBinds | on(default)の場合、接続しようとするユーザーの DN と入力されたパスワードに基づいて認証を行う。off の場合、匿名で全てのユーザー情報を取り出した後、それらの userPasswowrd と、入力されたパスワードをローカルで crypt ハッシュ値で計算して比較する。 |
LDAPDoAuth | on の場合、mod_ldap モジュールを使用して認証を行う(Default off)。2つ目の引数は検索に使用する base suffix を指定、3つ目の引数には検索フィルタを指定。 検索フィルタの Defaultは、(&(uid=%v)(objectclass=posixAccount)) が使用される。 |
LDAPDoGIDLookups | on の場合、グループID を LDAP エントリーの posixGroup から検索する(Default は off)。 |
LDAPDoUIDLookups | on の場合、ユーザーID を LDAP エントリーの posixAccount から検索する(Default は off)。 |
LDAPDefaultAuthScheme | LDAPAuthBinds が off の場合の、パスワードのハッシュ値を指定する。crypt と clear のみ指定可能(Default は crypt)。 |
LDAPDefaultGID | LDAP から gidNumber を取得できなかった場合に、ユーザーに割り当てるグループID。 |
LDAPDefaultUID | LDAP から uidNumber を取得できなかった場合に、ユーザーに割り当てるユーザーID。 |
LDAPForceDefaultGID | on にすると、LDAP から gidNumber を取得できた場合でも、強制的に 「LDAPDefaultGID」 を割り当てる(Default は off)。 |
LDAPForceDefaultUID | on にすると、LDAP から uidNumber を取得できた場合でも、強制的に 「LDAPDefaultUID」 を割り当てる(Default は off)。 |
CreateHome | on の場合、ユーザーのホームディレクトリが存在しない場合に、LDAP エントリーの homeDirectory 属性に従って作成する(Default は off)。「CreateHome on 0755 skel /etc/skel」 のように記述すると、ホームディレクトリのモードを 「0755」、「/etc/skel」 以下のファイルをコピーする。モードの指定をしなければ Default で 0700 になる。skel を指定しなければ、何もコピーされない。 |
LDAPGenerateHomedir | ユーザーのホームディレクトリが存在しない場合に、LDAP エントリーの homeDirectory 属性に従って作成する(Default は off)。但し、「CreateHome」 がなければ作成されない。この 「LDAPGenerateHomedir」 は、LDAP エントリーの homeDirectory の値を適用するために必要なようだが、実際にはこの 「LDAPGenerateHomedir」 がなくても、「CreateHome」 があれば、ホームディレクトリは作成される。 |
●ログイン時にユーザのホームディレクトリが存在しない場合
ログインしたユーザのホームディレクトリが存在しない場合、下記のようになります。
CreateHome off のとき
# ftp remotepc Connected to remotepc (192.168.0.111). 220 BIGBANG ProFTPD Server Name (remotepc:test1001): test1001 331 Password required for test1001 Password: 530 Login incorrect. Login failed. 421 Service not available, remote server has closed connection ftp> /var/log/messageのログ Nov 12 21:06:09 remotepc proftpd[3941]: 127.0.0.1 (192.168.0.111[192.168.0.111]) - FTP session opened. Nov 12 21:06:25 remotepc proftpd[3941]: 127.0.0.1 (192.168.0.111[192.168.0.111]) - notice: unable to use '~/' [resolved to '/home/test1001/']: No such file or directory Nov 12 21:06:25 remotepc proftpd[3941]: 127.0.0.1 (192.168.0.111[192.168.0.111]) - Preparing to chroot to directory '~/' Nov 12 21:06:25 remotepc proftpd[3941]: 127.0.0.1 (192.168.0.111[192.168.0.111]) - chroot to '~/' failed for user 'test1001': Operation not permitted Nov 12 21:06:25 remotepc proftpd[3941]: 127.0.0.1 (192.168.0.111[192.168.0.111]) - error: unable to set default root directory Nov 12 21:06:25 remotepc proftpd[3941]: 127.0.0.1 (192.168.0.111[192.168.0.111]) - FTP session closed.CreateHome on のとき
# ftp remotepc Connected to remotepc (192.168.0.111). 220 BIGBANG ProFTPD Server Name (remotepc:test1001): test1001 331 Password required for test1001 Password: 230 User test1001 logged in Remote system type is UNIX. Using binary mode to transfer files. ftp> /var/log/messageのログ Nov 12 21:11:19 nezumi proftpd[4181]: 127.0.0.1 (192.168.0.111[192.168.0.111]) - FTP session opened. Nov 12 21:11:28 nezumi proftpd[4181]: 127.0.0.1 (192.168.0.111[192.168.0.111]) - Preparing to chroot to directory '/home/test1001'
●「ホストへの経路がありません」とエラーが表示される
参考URL:Linuxといろいろ
ログイン後ディレクトリ内のリストを表示させようとlsコマンドを実行させると下記のようなエラーが表示されます。
ftp> ls 227 Entering Passive Mode (192,168,0,1,255,234). ftp: connect: ホストへの経路がありません下記の対応が必要です。
# modprobe ip_conntrack_ftp # modprobe ip_nat_ftp再起動のたびに、モジュールをロードするのは面倒なので自動でモジュールをロードするためにrc.localを編集します。
# vi /etc/rc.d/rc.local modprobe ip_conntrack_ftp modprobe ip_nat_ftp