由於之前的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端的限制~