vsftpd の設定メモ

vsftpd で、指定したユーザが指定したディレクトリにFTPでつなぐ時の設定。

userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
user_config_dir=/etc/vsftpd/user_conf

userlist_file=/etc/vsftpd/user_list

アクセス可能にするユーザを書き込みます。

ftp_user
www

chroot_list_file=/etc/vsftpd/chroot_list

空のファイルを置いておけばいいです。

user_config_dir=/etc/vsftpd/user_conf

それぞれのユーザの設定を書き込みます。

例えば
”/etc/vsftpd/user_conf/www”

local_root=/srv/www

”/etc/vsftpd/user_conf/ftp_user”

local_root=/srv/ftp_root

等のように個別に指定できます。

vsftpd の設定メモ

WindowsのRubyでThread内でプロセス作成すると止まっちゃう

Windows の Ruby で、Thread 内で新規プロセスを立ち上げようとすると、Thread 内で全体の動作を止めてしまうらしい。たとえば、

Thread.new do 
  `something.exe`
end

とやってみると、`something.exe` の処理が終わるのを待っているようだ。

Windows+Rubyで外部プロセスを立ち上げる時の注意 にまさにその情報が載っていた。Windows は、Windows::Process 等を使う必要があるみたいです。

require 'rubygems'
require 'win32/process'
require 'windows/synchronize'
require 'windows/process'
require 'windows/handle'
 
include Windows::Synchronize
include Windows::Process
include Windows::Handle
 
t = Thread.new do 
  Process.create('app_name' => 'something.exe')
end
puts "hello!"
t.join

のようにしたら、プロセス生成してもそこで止まることは無くなりました。

WindowsのRubyでThread内でプロセス作成すると止まっちゃう