vsftpdログの日本語文字化けを解消する

vsftpdは、デフォルト状態のログでは日本語含むファイル名が文字化けします。これを解消するためには、ソースを編集したオリジナルパッチを適用する必要があります。

環境
OS:CentOS7.6
vsftpdバージョン:3.0.2

  1. vsftpdのソースをダウンロードします。
    # wget http://vault.centos.org/7.6.1810/os/Source/SPackages/vsftpd-3.0.2-25.el7.src.rpm
  2. rpm作成環境を準備します。
    # yum -y install rpm-build
    # useradd -s /sbin/nologin mockbuild
  3. vsftpfをrpmでインストールします。
    # rpm -ivh vsftpd-3.0.2-25.el7.src.rpm
  4. 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/
  5. ソースのロギングライブラリを編集し、オリジナルパッチを作成します。

    # 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/
  6. ソースをコンパイルする環境の準備

    # 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
    
  7. オリジナルパッチの適用

    # rpm -ivh rpmbuild/RPMS/x86_64/vsftpd-3.0.2-25.org.el7.x86_64.rpm

    以上

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です