vsftpdは、デフォルト状態のログでは日本語含むファイル名が文字化けします。これを解消するためには、ソースを編集したオリジナルパッチを適用する必要があります。
環境
OS:CentOS7.6
vsftpdバージョン:3.0.2
- vsftpdのソースをダウンロードします。
# wget http://vault.centos.org/7.6.1810/os/Source/SPackages/vsftpd-3.0.2-25.el7.src.rpm
- rpm作成環境を準備します。
# yum -y install rpm-build # useradd -s /sbin/nologin mockbuild
- vsftpfをrpmでインストールします。
# rpm -ivh vsftpd-3.0.2-25.el7.src.rpm
- vsftpdのソースを展開し、ソースをバックアップします。
# tar xvfz rpmbuild/SOURCES/vsftpd-3.0.2.tar.gz # mkdir backup # cp -p vsftpd-3.0.2/logging.c vsftpd-3.0.2/logging.c.org # cp -p rpmbuild/SOURCES/vsftpd-3.0.2.tar.gz backup/
- ソースのロギングライブラリを編集し、オリジナルパッチを作成します。
# vi vsftpd-3.0.2/logging.c str_replace_unprintable(p_str, '?'); →/*str_replace_unprintable(p_str, '?');*/ # echo "diff -up vsftpd-3.0.2/logging.c.org vsftpd-3.0.2/logging.c" > vsftpd-3.0.2-logging_charset.patch # diff -up vsftpd-3.0.2/logging.c.org vsftpd-3.0.2/logging.c >> vsftpd-3.0.2-logging_charset.patch # mv vsftpd-3.0.2-logging_charset.patch /root/rpmbuild/SOURCES/ # cp -p rpmbuild/SPECS/vsftpd.spec backup/ # vi rpmbuild/SPECS/vsftpd.spec Release: 25%.{?dist} → Release: 25.tcs%{?dist} # Patch51: vsftpd-3.0.2-logging_charset.patch # %patch51 -p1 -b .org_version # tar cvfz vsftpd-3.0.2.tar.gz vsftpd-3.0.2/ # cp -p vsftpd-3.0.2.tar.gz rpmbuild/SOURCES/
- ソースをコンパイルする環境の準備
# yum -y install pam-devel # yum -y install libcap-devel # yum -y install openssl-devel # yum -y install tcp_wrappers-devel # yum -y install gcc # rpmbuild -ba rpmbuild/SPECS/vsftpd.spec
- オリジナルパッチの適用
# rpm -ivh rpmbuild/RPMS/x86_64/vsftpd-3.0.2-25.org.el7.x86_64.rpm
以上