質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

2回答

942閲覧

chroot化したユーザのxferlog内でのパス表示を相対パス→絶対パスにしたいです。(proftpd)

hrttera

総合スコア10

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2022/07/25 04:32

編集2022/07/25 05:21

前提

サーバ情報
・CentOS7.5
・Proftpd 1.3.5e
・仮想VM上にFTPサーバを構築

現状

proftpdを用いてFTPサーバを構築しています。
アクティブ接続、パッシブ接続共にファイル転送や削除などの基本的な挙動はできている状態です。
ユーザアクセス制限のために、グループごとにchroot化をしており、
/etc/proftpd.confにtestグループのユーザに関しては以下1行を設定をしております。

#less/etc/proftpd.conf DefaultRoot /home/ftp/%u/sub test

この状況下でuser1の/home/ftp/user1/subディレクトリへ自分のPCローカルからtransfer.txtを転送したところ、

less/var/log/xferlog Mon Jul 25 10:30:00 2022 0 xx.xx.xx.xx 33 /transfer.txt b _ i r user1 ftp 0 * c

と相対パスでの表示になってしまいます。(xx.xx.xx.xxは接続元IP)
/etc/proftpd.conf内にxferlogの設定は入れていないため、デフォルトの設定になっている認識です。

実現したいこと

user1の/home/ftp/user1/subディレクトリへ自分のPCローカルからtransfer.txtを転送した際に

#less/var/log/xferlog Mon Jul 25 10:30:00 2022 0 xx.xx.xx.xx 33 /home/ftp/user1/sub/transfer.txt b _ i r user1 ftp 0 * c

のようにchrootしたままの状態で、絶対パスでの表示にしたいです。

発生している問題

chroot化した状態だとxferlog内のパス表示が相対パスになってしまいます。

試したこと

chrootの部分に問題が依存している可能性を考え、以下のようにproftpd.confを修正し反映させました。

#vi /etc/proftpd.conf DefaultRoot /home test #systemctl restart proftpd

その結果、xferlogのパスが以下のように変更されました。

#less/var/log/xferlog Mon Jul 25 10:45:00 2022 0 xx.xx.xx.xx 33 /ftp/user1/sub/transfer.txt b _ i r user1 ftp 0 * c

これにより、chroot化が影響していると思われますが、以下補足情報含め、xferlog内の絶対パス表示が実現可能だと考えています。

補足情報(FW/ツールのバージョンなど)

現行のFTPサーバはchroot化した状態で、xferlog上では絶対パス表示がされております。
手順書やサーバ詳細情報がないため、調査はしたのですが、解決方法が見つかっていない状況です。
現行のサーバで実現していることから、設定変更にて実現可能だと推測しています。

質問

上記実現のために、設定変更箇所についてご存知の方がいらっしゃましたらご教授お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

http://www.proftpd.org/docs/modules/mod_log.html#LogFormat
を見ると、ログに書くファイル名として、

%f Absolute path of the filename stored or retrieved (not chrooted)
%F Filename stored or retrieved, as the client sees it

の両方があるので、LogFormat%fを指定すれば出来そうです。

Proftpdを使ったことが無いので、具体的な変更箇所はわかりませんが。

投稿2022/07/25 10:10

otn

総合スコア84538

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hrttera

2022/07/25 10:51

お忙しい中、ご回答頂きありがとうございます。 xferlogではありませんが、proftpd関連で出力しているall.logで「%f」を用いて以下のように設定してみました。 less /etc/pfoftpd.conf LogFormat allinfo "%t : %u (%a [%h]) : [%s], %T, %m (%f)" ExtendedLog /var/log/proftpd/all.log ALL allinfo この場合でも、絶対パス表示が出てこなかったため、他の要因で妨げている可能性がありますね。。 引き続き、調査をしてみます。ありがとうございます。
hrttera

2022/08/08 07:44

/etc/proftpd.conf内に LoadModule mod_vroot.c が含まれていることが原因でした。こちらをコメントアウトした結果、解決いたしました。
guest

0

自己解決

/etc/proftpd.conf内に

LoadModule mod_vroot.c

が含まれていることが原因でした。こちらをコメントアウトした結果、解決いたしました。

投稿2022/08/08 07:45

hrttera

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問