Linux vsftpd安裝和啟動及命令行下登錄,查看中文文件出現亂碼
1. 安裝和啟動Linux vsftpd:
$ yum install vsftpd然后更改/etc/vsftpd/vsftpd.conf文件,在最后加上一行代碼,使得Linux vsftpd能夠運行在一個獨立的進程上:listen=yes開啟vsftp服務,若要開機自動啟動,可以在System->Administration->Services里更改:$ service vsftpd start(/stop/restart)在防火墻中開啟端口21,System->Administration->Firewall,選擇FTP,啟用之。此時,ftp服務已經可以匿名訪問了。
2. 讓服務器上的本地用戶能夠通過ftp訪問服務器(當然,這些用戶也可以通過SSH等方式訪問):
首先修改/etc/vsftpd/vsfptd.conf,找到以下一行,去掉前面的注釋:local_enable=YES重啟服務之后,就可以允許本地用戶訪問了,其認證方式是采用pam(Pluggable Authentication Module)的方式,其相應的文件位于/etc/pam.d/vsftpd,這個同Gnome中每次打開update manager都會要求輸入密碼類似。在vsftpd.conf中也可以修改(pam_service_name)。但是如果要限制本地用戶中的一部分用戶通過ftp訪問,可以通過修改配置文件實現。
在Linux vsftpd.conf中找到并修改為以下幾行(若沒有則需要添加),其意義為只允許指定的user_list文件中所列舉的本地用戶通過FTP登錄,不在這個列表中的本地用戶禁止登錄:
- userlist_enable=YES
- userlist_deny=NO
- userlist_file=/etc/vsftpd/user_list
如果把上述第二行中userlist_deny=NO改為userlist_deny=YES,則情況正好相反,即只允許那些不在user_list文件中的本地用戶通過FTP登錄,而在這個列表中的本地用戶則禁止登錄。
在上述情況下,用戶登錄后可能出現無法查看目錄的情形,但是能夠改變目錄和訪問根目錄"/",出現如下的錯誤:Response: 226 Transfer done (but failed to open directory).這是由于Fedora中默認開啟了selinux(Security Enhanced Linux)服務,為了關閉此服務,應修改/etc/selinux/config文件,將SELINUX=enforced改為 SELINUX=disable,然后重啟系統。
3.Linux vsftpd禁止用戶改變home directory:
在默認情況下Linux vsftpd規定了如下變量值,該值表明所有的本地用戶都不能改變home direcotry,對于一個名為test的用戶來說,其默認home direcotry為/home/test/,改用戶登錄之后,由于有如下的設置,因此該用戶不能navigate 到上一級的目錄,也就是說他被鎖定在了自己的home directory下,只能訪問該目錄及其子目錄:chroot_local_user=YES
如果只需要控制某一部分用戶不被鎖定在home directory,則需要修改vsftpd.conf文件,找到并修改一下內容,這說明,位于/etc/vsftpd/chroot_list文件中的每一個用戶都不被鎖定,而其他不在該文件中的用戶則均被鎖定:
- chroot_local_user=YES
- chroot_list_enable=YES
- chroot_list_file=/etc/vsftdp/chroot_list
在上述設置中,若把chroot_local_user的值改為NO,則情況正好相反,說明位于chroot_list文件下的用戶都被鎖定,而其他不在該文件中的用戶均不被鎖定。
4. Linux vsftpd為用戶增加修改和刪除等權限
修改/etc/vsftpd/vsftpd.conf文件,找到并去掉以下一行的注釋,即可賦予用戶修改和刪除文件的權限:write_enable=YES若要實現不同用戶登錄后賦予不同權限,則需要更加復雜的實現。
5. Linux vsftpd命令行下登錄,查看中文文件出現亂碼
由于Linux vsftpd下默認的字符集為UTF-8,而Windows中的默認字符集為GBK,因此當在linux下瀏覽Windows中的中文文件時,會出現亂碼。如果客戶端為FlashFXP或者FileZilla,都可以通過連接時設置字符集為UTF-8解決。但是如果通過命令行登錄,則由于vsftp沒有支持字符集的選擇,也會出現亂碼。對于FlashFXP, 首先需要把ftp地址保存到站點管理器,然后在站點管理器中選中該站點,點擊高級->字符編碼,選擇UTF8。對于FileZilla,其設置方式類似。
目前還沒有找到一個好的解決方案,有一種解決辦法是通過打補丁解決,參考以下文檔:http://forum.ubuntu.org.cn/viewtopic.php?f=54&t=28642&start=0
6. Linux vsftpd其他服務器參數配置
- max_clients=5 #設置同時登錄的最大連接數
- ftpd_banner=Your welcome info here. #設置用戶登錄后的歡迎信息
- ascii_upload_enable=YES#啟用字符模式的上傳,可能帶來安全隱患
- ascii_download_enable=YES #啟用字符模式的下載
- idle_session_timeout=300 #空閑時間超過300秒后斷開連接
- data_connection_timeout=300 #數據連接超時時間為300秒
- xferlog_enable=YES #開啟上傳下載日志功能
- xferlog_file=/var/log/vsftpd.log #日志文件存放位置
- dirmessage_enable=YES #啟用目錄的.message信息
【編輯推薦】