個人心情和 Linux / FreeBSD 等技術

2008/01/14

建立vsftpd

由於之前的pure-ftpd在etch上有big5轉碼問題,但鑑於還跑了xoops

和一堆Big5模組無法把機器改到UTF-8環境,只好把pure-ftpd

給換成vsftpd筆記一下以免忘記

1.安裝
#sudo aptitude install vsftpd

2更改設定
#sudo vi /etc/vsftpd.conf

listen=YES
listen_port=21
pasv_enable=YES
max_clients=50
max_per_ip=4
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
nopriv_user=nobody
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list (預設檔案不存在,自行建立)
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem

3.建立使用者
vsftpd使用系統內建帳號即可連上ftp,所以建立系統帳號即可

$sudo adduser teacher

並將不想限制在home目錄的帳號加入/etc/vsftpd.chroot_list中

$sudo vi /etc/vsftpd.chroot_list

rellik (一行一個user)

再來更動被限制在家目錄的帳號home目錄

$sudo vipw

teacher:x:1001:1001:,,,:/var/www/ftp:/bin/bash

我想讓teacher一連上ftp就限制在 /var/www/ftp底下

shell則使用/bin/bash或是/bin/sh即可,一定要有shell,不然無法登入。

$sudo vigr

teacher:x:1001:rellik

$sudo vigr -s

teacher:!::rellik (自己帳號加入了teacher群組裡面)

4.最後注意 /var/www/ftp 權限和擁有者

$sudo chown -R teacher:teacher /var/www/ftp

$sudo chmod -R 770 /var/www/ftp(teacher帳號和群組可讀、可異動、可進入該目錄)

$ls -l

drwxrwx--- 3 teacher teacher 41 2008-01-14 15:11 ftp

5.重新啟動vsftpd

$sudo /etc/init.d/vsftpd restart

6.測試

建立個"許功蓋"的檔案上傳測試成功!

指令: STOR 許功蓋.doc
回應: 150 Ok to send data.
回應: 226 File receive OK.
狀態: 檔案傳輸成功
指令: DELE 許功蓋.doc
回應: 250 Delete operation successful.

裝完收工~~

參考資料:鳥哥的Linux私房菜
http://linux.vbird.org/linux_server/0410vsftpd.php

1/15 update:發現新問題,使用filezilla的client無法直接上傳內有檔案的

目錄,但可直接上傳空目錄,不知是client端還是server端的限制~