vsftpd ファイルサイズ制限

vsftpd でファイルサイズに制限をかける方法です。

元々 vsftpd にはファイルサイズに制限をかける機能はありませんので、
無理矢理制限をかける方法です。

自己責任でお願いいたします。

方法は簡単で、vsftpd を起動するシェルスクリプトで ulimit するだけです :mrgreen:

CentOS など linux の場合、/etc/rc.d/init.d/vsftpd がシェルスクリプトになりますので、
先頭の方で ulimit -f 制限するサイズ(キロバイト単位) を追加します。

~省略~
ulimit -f 20 #← 20 キロバイトに制限
start() {
         # Start daemons.
 
~省略~

そして vsftpd を再起動します。

root# service vsftpd restart

実際に制限を超えたサイズのファイルをアップロードしてみたところ
以下のエラーとなりました。

500 OOPS: child died

たとえば 10KB の制限をかけて、1MB のファイルをアップロードすると、
10KB の壊れたファイルが作成されます :mrgreen:

あまり良い方法ではありませんが、どうしても他に手段が無い 😥
という場合には使える手かもしれません 😎