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