2011年1月24日 星期一

ubuntu設定vsftp

文章來源
http://blog.udn.com/nigerchen/2261345

sudo apt-get install vsftpd

檢查是否安裝成功

netstat -tul | grep ftp

會有一個LISTEN,表示已運行待命中。
先取消匿名登入

如何設定vsftp權限

sudo vim /etc/vsftpd.conf
#不接受匿名用戶
anonymous_enable=No

#接受本地用戶
local_enable=YES

#可以上傳(全局控制).若想要匿名用戶也可上傳則需要設置anon_upload_enable=YES,若想要匿名用戶可以建立目錄則需要anon_mkdir_write_enable=YES.這裡禁止匿名用戶上傳,所以不設置這兩項.
write_enable=YES

#本地用戶上傳文件的umask
local_umask=022

#使用上傳/下載日誌,日誌文件默認為/var/log/vsftpd.log,可以通過xferlog_file選項修改
xferlog_enable=YES

#日誌使用標準xferlog格式
xferlog_std_format=YES


#本地用戶login後所在目錄,若沒有設置此項,則本地用戶login後將在他的home目錄(/etc/passwd的第六個欄位)中.匿名用戶的對應選項是anon_root<
local_root=/var/ftp

#設置為YES則下面的控制有效
chroot_list_enable=YES

#若為NO,則記錄在chroot_list_file選項所指定的文件(默認是/etc/vsftpd.chroot_list)中的用戶將被chroot在登錄後所在目錄中,無法離開.如果為YES,則所記錄的用戶將不被chroot.這裡選擇YES.(管理員使用居多)
chroot_local_user=NO

#若設置為YES則記錄在userlist_file選項指定文件(默認是/etc/vsftpd.user_list)中的用戶將無法login,並且將檢察下面的userlist_deny選項
userlist_enable=YES

#若為NO,則僅接受記錄在userlist_file選項指定文件(默認是/etc/vsftpd.user_list)中的用戶的login請求.若為YES則不接受這些用戶的請求.
userlist_deny=NO

#注意!!!vsftpd還要檢查/etc/vsftpd.ftpusers文件,記錄在這個文件中的用戶將無法login!!

#伺服器以standalong模式運行,這樣可以進行下面的控制
listen=YES



都改好了嗎?記得要重新啟動vsftp,才會生效

sudo /etc/init.d/vsftpd restart

------
補充:
新增一個帳號是test管理web server

那我們要怎麼限制這個帳號要控管哪個資料夾呢?

chroot_local_user=NO,而且在 /etc/vsftpd.chroot_list
也輸入了test這個帳號,那這個帳號將被限定在/home/test/,登入ftp後,將會無法回上一層,你的/home/test/被限定為根目錄,


但是我的web server資料夾不是test,那怎麼做??

我們要修改帳號的初始路徑

sudo vim /etc/passwd

我們會看到下面的訊息(假設帳號為test)
test : x : 1001 : 1001 : test : /home/test : /bin/bash
^^^       ^^^    ^^^     ^^    ^^^^^^^
帳號       帳號id    群組id  群組名  家目錄位置

我們的目錄已改變在 /home/www/,那這個test帳號要管理web server 的資料夾,則可以把 /home/test/ 改成 /home/www/

家目錄的位置可以這樣修改,但是其餘的參數請勿在此修改,若導致帳號無法處理,我可無法負責。

我們可以看是否有修改成功,可以下這個指令

sudo grep test /etc/passwd

若出現
test : x : 1001 : 1001 : test : /home/www : /bin/bash

那就是修改正確,那就可以去你的ftp上面看是不是可以看到www裡的內容

沒有留言:

張貼留言