Vsftpd.conf 能夠用來控制vsftpd的多種行爲,默認狀況下,vsftpd在/etc/vsftpd.conf路徑下查找這個文件。然而,你能夠經過自定義 vsftpd的命令行參數來改變它。命令行的參數是vsftpd的配置文件的路徑名。這種作法是頗有用的,由於你也許想要使用一個高級的網絡守護進程,例如 xinetd ,在每個虛擬主機上使用不一樣的配置文件來啓動vsftpd服務。正則表達式
格式
vsftpd.conf的格式很是簡單。每一行不是一個註釋就是一個命令。註釋行以#號開頭而且是被忽略的。一個命令行有如下格式:
option=value (選項=值)
要知道,在option、=、value之間不容許有空白符(空格等),這一點很重要。
每個選項在編譯時都有一個默認的設置,能夠在配置文件中修改它。
布爾值選項
下面是一個布爾選項列表,每個布爾選項的值能夠設置爲 YES 或者 NO。
* allow_anon_ssl
只有當ssl_enable被激活才適用。若是設置爲 YES,匿名用戶容許使用安全的 SSL(安全套接字協議層)鏈接。
默認:NO
* anon_mkdir_write_enable
若是設置爲 YES,匿名用戶在這種狀況下將被容許建立新目錄。爲了使這個能起做用,選項 write_enable 必須被激活,並且匿名的ftp用戶在父目錄中有寫權限。
默認:NO
* anon_other_write_enable
若是設置爲 YES ,匿名用戶在進行寫操做時除了能夠上傳(文件)和建立目錄外,還能夠刪除和重命名(文件或目錄)。這個一般不推薦使用,但爲了完整性確實包含了此選項。
默認:NO
* anon_upload_enable
若是設置爲 YES ,匿名用戶在這種狀況下將被容許上傳文件。爲了使這個能起做用,選項 write_enable 必須被激活,並且匿名ftp用戶在想要上傳的路徑下有寫權限。這項設置也是虛擬用戶得到上傳權限所必需的;默認狀況下,虛擬用戶等同對待於匿名用戶(i.e最大限度限制)的權限。
默認:NO
* anon_world_readable_only
若是啓用(該選項),匿名用戶將只被容許下載具備全局可讀的文件。它能識別ftp用戶是否文件的屬主,尤爲是在文件上傳的情形。
默認:YES
* anonymous_enable
控制是否容許匿名用戶登陸。若是容許,用戶名ftp和anonymous被識別爲匿名用戶登陸。
默認:YES
* ascii_download_enable
若是啓用,下載時將以ASCII模式進行數據傳輸。
默認:NO
* ascii_upload_enable
若是啓用,上傳時將以ASCII模式進行數據傳輸。
默認:NO
* async_abor_enable
若是啓用,一個特殊的FTP命令「async ABOR」將被啓用。只有那些比較差勁的FTP終端纔會使用這項功能。另外,這項功能的實現有點棘手,因此默認是不啓用的。不幸的是,一些FTP終端在取消(數據)傳輸時會被掛起,除非啓用了該項功能,因此,你也許想要啓用它。
默認:NO
* background
若是啓用,vsftpd則以「監聽」模式啓動,vsftpd將在後臺監聽進程。i.e.控制將直接返回啓動vsftpd的shell。
默認:NO
* check_shell
注意!該選項只對沒有編譯PAM模塊的vsftpd有效。若是禁用(該選項),vsftpd將不會爲本地的有效用戶登陸時檢查/etc/shells。
默認:YES
* chmod_enable
若是啓用,則容許使用SITE CHMOD命令。注意,這隻適用於本地用戶,匿名用戶永遠不會擁有SITE CHMOD的使用權的。
默認:YES
* chown_enable
若是啓用,全部的匿名用戶上傳文件的全部者將改變爲定義在chown_username設置中的用戶。從管理或者安全的角度來看,這是十分有用的。
默認:NO
* chroot_list_enable
若是激活(該選項),你應該提供一個在登陸時被chroot()限定在其主目錄下的本地用戶列表。若是chroot_local_user選項設置爲YES,則(該選項)意思稍微不一樣,在這種狀況下,這個列表則變成了不受chroot()限制的用戶列表。默認狀況下,包含這個用戶列表的文件是 /etc/vsftpd.chroot_list,可是你能夠經過chroot_list_file選項來更改它。(ps:這裏很差翻譯,下面是英文原文:If activated, you may provide a list of local users who are placed in a chroot() jail(監牢、監獄) in their home directory upon login.The meaning is slightly different if chroot_local_user is set to YES. In this case, the list becomes a list of users which are NOT to be placed in a chroot() jail. By default, the file containing this list is /etc/vsftpd.chroot_list, but you may override this with the chroot_list_file setting.)
默認:NO
* chroot_local_user
若是設置爲YES,本地用戶將被chroot()限定在其主目錄下(默認)。警告:這個選項牽連到安全性,尤爲在用戶擁有上傳權限或者使用 shell權限的狀況下。只有在你知道本身在作什麼時才啓用它。要知道這些安全相關性不是vsftpd所特有的,它們適用於全部提供chroot()限定本地用戶機制的FTP守護進程。(英文原文:If set to YES, local users will be (by default) placed in a chroot() jail in their home directory after login. Warning:This option has security implications, especially if the users have upload permission, or shell access. Only enable if you know what you are doing. Note that these security implications are not vsftpd specific. They apply to all FTP daemons which offer to put local users in chroot() jails.)
默認:NO
* connect_from_port_20
該選項控制端口類型數據鏈接是否使用服務器上的20號端口(ftp-data)。爲安全起見,一些客戶端主張使用這種狀況。相反地,禁用該選項使得vsftpd服務以更少的特權運行。
默認:NO(可是示例配置文件中啓用它)
* debug_ssl
若是爲真,openSSL鏈接的診斷信息轉儲到vsftpd的日誌文件。(版本2.0.6中才添加的功能)
默認:NO
* deny_email_enable
若是激活(該選項),你應該提供一個匿名密碼電子郵件列表來應答禁止登陸。默認狀況下,包含這個列表的文件是/etc/vsftpd.banned_emails,可是你能夠經過banned_email_file設置更改它。
默認:NO
* dirlist_enable
若是設置爲NO,將禁用全部的顯示目錄內容的命令。
默認:YES
* dir_message_enable
若是啓用,用戶進入到一個新的目錄時,FTP服務器將顯示一段消息。默認狀況下,(服務器)會搜索目錄中的.message文件,可是你能夠經過配置選項message_file來更改它。
默認:NO(可是示例配置文件中啓用它)
* download_enable
若是設置爲NO,全部的下載請求將會被拒絕。
默認:YES
* dual_log_enable
若是啓用,將會並行生成兩個日誌文件,默認狀況下日誌將保存到/var/log/xferlog和/var/log/vsftpd.log。前者是wu-ftpd風格的傳送日誌,可以被標準的工具分析。後者是vsftpd風格日誌。
默認:NO
* force_dot_files
若是激活,以 . 開頭的文件和目錄在列舉目錄內容時將會被顯示,即便客戶端程序沒有使用「a」標誌。這個將使得排除「.」和「..」的記錄無效。
默認:NO
* force_anon_data_ssl
只適用於ssl_enable開啓的狀況。若是激活(該選項),在數據鏈接(非控制鏈接)時全部的匿名登陸用戶將被強制使用安全SSL鏈接以發送和接收數據。
默認:NO
* force_anon_logins_ssl
只適用於ssl_enable的狀況。若是激活,全部的匿名登陸將被強制使用安全SSL鏈接來發送密碼。
默認:NO
* force_local_data_ssl
只適用於ssl_enable開啓的狀況。若是激活,在數據鏈接時全部的非匿名登陸將被強制使用安全SSL鏈接來發送和接收數據。
默認:YES
* force_local_logins_ssl
只適用於ssl_enable的狀況。若是激活,全部非匿名登陸將被強制使用安全SSL鏈接來發送密碼。
默認:YES
* guest_enable
若是啓用,全部的非匿名登陸將歸類爲「guest」登陸。一個guest登陸被從新映射爲guest_username設置所指定的用戶。
默認:NO
* hide_ids
若是啓用,則全部的用戶和用戶組信息在列舉目錄文件內容時將顯示爲「ftp」
默認:NO
* listen
若是啓用,vsftpd將以獨立模式運行。這意味着vsftpd不能在某些網絡守護進程(譬如xinetd)下運行,做爲替代,可執行的vsftpd只運行一次,而後監聽和處理到達的鏈接。
默認:NO
* listen_ipv6
就像監聽參數同樣,除了vsftpd監聽在IPv6套接字上替代IPv4外,這個參數和監聽參數是相互排斥的。
默認:NO
* local_enable
控制是否容許本地登陸。若是啓用,/etc/passwd(或者與PAM相關)中的普通用戶將用來登陸,這必須啓用全部的非匿名登陸,包括虛擬用戶。
默認:NO
* lock_upload_file
若是啓用,全部的上傳進程在上傳文件上附加一個寫鎖。全部的下載進程在下載文件中附加一個共享讀瑣。警告!在啓用這個以前,要意識到不懷好意的讀進程會餓死一個由於沒有資格追加一個文件的寫進程。
默認:YES
* log_ftp_protocol
若是啓用,全部的FTP請求和應答都被記錄。提供的xferlog_std_format選項將不能使用。(該選項)對調試有用。
默認:NO
* ls_recurse_enable
若是啓用,該設置將容許使用「ls -R」,這是一個次要的安全風險,由於在一個大型站點的頂級目錄使用ls -R將消耗大量的系統資源。
默認:NO
* mdtm_write
若是啓用,該設置將容許 MDTM 設置文件的更改時間(一般訪問檢測的主體)
默認:YES
* no_anon_password
若是啓用,它將禁止vsftpd詢問匿名用戶的密碼。——匿名用戶將能夠直接登陸。
默認:NO
* no_log_lock
若是啓用,它將禁止vsftpd在寫日誌文件時附加文件鎖。該選項一般不啓用。這在一些操做系統上存在bugs,例如在Solaris/Veritas混合文件系統中,鎖日誌文件時中已經注意到了一些懸而未決的問題。
默認:NO
* one_proccess_model
若是使用Linux 2.4 的內核,每個鏈接使用單一進程則可使用一個不一樣的安全模式。它不是一個純粹安全的模式,不過它能夠提升性能。通常你不會真正想啓用它,除非你知道本身在作什麼,並且你的站點支持同時鏈接巨大數量的用戶。
默認:NO
* passwd_chroot_enable
這裏很差翻譯,直接帖原文吧。原文:If enabled, along with chroot_local_user , then a chroot() jail(監牢、監獄) location may be specified on a per-user basis. Each user’s jail is derived(起源於、取得) from their home directory string in /etc/passwd. The occurrence(事件、出現) of /./ in the home directory string denotes(指示、表示) that the jail is at that particular location in the path.
默認:NO
* pasv_addr_resolve
若是你想在pasv_address選項上使用hostname(於IP地址相對),那麼把它設置爲YES
默認:NO
* pasv_enable
若是你想禁止以被動模式獲取數據鏈接,那麼把它設置爲NO
(所謂的PASV(Passive mode transfer,被動傳輸模式),是指先利用鏈接端口21創建FTP的控制信道,再由客戶端提出數據傳輸的請求,其中包含數據傳輸時使用的鏈接端口號。這是與傳統的FTP(PORT FTP)最大的不一樣,由於傳統的FTP是由服務器來定義數據傳輸時使用的鏈接端口號。若是啓用該選項,則會啓用PASV的功能)
默認:YES
* pasv_promiscuous
設置爲YES,若是你想禁用PASV(被動傳輸模式)安全檢查。此項檢查可用來肯定數據鏈接是否由控制鏈接的相同IP地址發出的。只在你清楚本身在作什麼時才啓用它!惟一合理的用途是在一些安全隧道模式的情形,或者是爲了支此傳真設備。
默認:NO
* port_enable
設置爲NO,若是你想禁止使用PORT(端口)的方法來創建數據鏈接。
默認:YES
* port_promiscuous
設置爲YES,若是你想禁用PORT(端口)安全檢查。此項檢查可用來肯定傳送的數據僅能鏈接到客戶端,只在你清楚本身在作什麼時才啓用它!
默認:NO
* require_cert
若是設置爲YES,全部的SSL(Security Socket Layer 安全套接字協議層)客戶端鏈接都須要提供一個客戶端簽證。根據該簽證被批准的程度由validate_cert控制。
默認:NO
* run_as_launching_user
設置爲YES,若是你想以啓動vsftpd的用戶身份來運行vsftpd。這在root不能使用的地方十分有用。MAS-SIVE WARNING! Do NOT enable this option unless you totally know what you are doing, as naive use of this option can create mas-sive security problems.特別的,vsftpd不是/,當啓用該選項時,將不能使用chroot技術來限制文件的讀取權限,即便是以root身份啓動 vsftpd。(原文:Specifically, vsftpd does not / cannot use chroot technology to restrict file access when this option is set (even if launched by root).)一個不是很好的替代是使用一個deny_file文件,並設置爲{/*,*..*},但這個的可靠性比不上chroot,因此不該該依賴這個。若是啓用該選項,許多限制也將會應用在其餘選項上。例如,一些須要必定特權的選項比方說非匿名登陸、文件上傳、文件全部權的更改、從20號端口鏈接以及監聽端口小於1024等將不能像預期同樣的工做(are not expected to work)。其餘選項也將會受到影響。
默認:NO
* secure_email_list_enable
設置爲YES,若是你只但願特定的e-mail passwords(以e-mail做爲密碼)列表的匿名登陸才被接受。這在做爲一種比較不很麻煩的不須要使用虛擬用戶來限制訪問低安全性的內容十分有用。若是啓用,匿名登陸將被阻止,除非提供的密碼列舉在由email_password_file設置指定的文件中。該文件的格式是每個密碼一行,沒有額外的空白符。默認的文件名/etc/vsftpd.email_passwords。
默認:NO
* session_support
該選項控制vsftpd是否保持登陸會話。若是vsftpd保持會話,它將嘗試更新utmp和wtmp,若是使用PAM驗證模塊,也將開啓一個 pam_session,並且僅當登出時才關閉。你也許但願禁用該選項,若是你不須要會話記錄,或者你但願vsftpd以更少的線程來運行以及/或者更少的權限。注意——utmp和wtmp僅當啓用內建的PAM模塊時才被支持。
默認:NO
* setproctitle_enable
若是啓用該選項,vsftpd將嘗試在系統的進程列表中顯示會話的狀態信息。換言之,進程的彙報名稱將反映vsftpd會話的狀態(空閒、正在下載等)。出於安全的目的,你也許但願保持關閉該選項。
默認:NO
* ssl_enable
若是啓用該選項,vsftpd將編譯帶有OpenSSL的依賴,vsftpd將經過SSL支持安全鏈接。這適用於控制鏈接(包括登陸)和數據鏈接。你還將須要客戶端支持SSL。注意!僅當你有這個須要才啓用它。vsftpd並不能保證OpenSSL庫的安全性。若是啓用該選項,意味者你相信你所安裝的OpenSSL庫的安全性。
默認:NO
* ssl_sslv2
僅適用於ssl_enable開啓的狀況,若是啓用,該選項將容許SSL(Secure Sockets Layer) v2(版本2)協議的鏈接。TLS(Transport Layer Security) v1鏈接首選。
默認:NO
* ssl_sslv3
僅適用於ssl_enable開啓的狀況,若是啓用,該選項將容許SSL v3協議的鏈接。TLS v1鏈接首選。
默認:NO
* ssl_tlsv1
僅適用於ssl_enable開啓的狀況,若是啓用,該選項將容許TLS v1協議的鏈接。TLS v1鏈接首選。
默認:YES
* syslog_enable
若是啓用,則全部本來輸出到/var/log/vsftpd.log日誌輸出將轉移到系統日誌,日誌的記錄由FTPD設備完成。
默認:NO
* tcp_wrappers
若是啓用,並且vsftpd編譯了tcp_wrappers支持模塊,接入的鏈接將被送往tcp_wrappers訪問控制。並且,還有一個基於每個IP的配置機制。若是tcp_wrappers設置了VSFTPD,接入的鏈接將被送往tcp_wrappers訪問控制。並且,還有一個基於每個 IP的配置機制(能夠利用/etc/hosts.allow與/etc/hosts.deny文件來定義可鏈接或拒絕的來源地址——這就是 tcp_wrappers?)。若是tcp_wrappers設置了VSFTPD_LOAD_CONF環境變量,那麼vsftpd會話將嘗試加載由這個變量指定的vsftpd的配置文件。
默認:NO
* text_userdb_names
默認狀況,在列出(使用ls -al之類的命令)目錄中的文件時,用戶和組域顯示數字形式的ID。若是啓用該參數,你將得到文本形式的名字(ID)。處於性能的考慮,默認狀況下是關閉的。
默認:NO
* tilde_user_enable
(tilde意思爲:波浪字符)若是啓用該選項,vsftpd將嘗試解析諸如~chris/pics的路徑名。i.e.跟隨在波浪字符以後的用戶名。Note that vsftpd將會一直解析~和~/something的路徑名(這種狀況,~被解析爲初始登陸的目錄)。Note that ~user路徑僅僅在/etc/passwd文件在_current_chroot() jail(監獄、牢獄)限定的範圍內能找到的狀況下才被解析。
默認:NO
* use_localtime
若是啓用,vsftpd將在(使用ls -al之類的命令)列舉目錄中文件時附帶顯示你當前時區時間。默認狀況顯示GMT(格林威治時間)。由MDTM FTP命令返回的時間也受該選項的影響。
默認:NO
* use_sendfile
一個用來測試在你的平臺上使用sendfile()系統調用的相關效能的內部設置。
默認:YES
* userlist_deny
該選項用來檢查userlist_enable是否啓用。若是你(把該設置)設置爲NO,,那麼用戶將被拒絕登陸,除非ta們被明確的記錄在由userlist_file指定的文件中。當登陸被拒絕時,拒絕(登陸)發生在詢問用戶密碼以前。
默認:YES
* userlist_enable
若是啓用,vsftpd將從userlist_file提供的文件中加載一個用戶名列表,若是一個用戶登陸時使用的用戶名列舉在該文件中,那麼ta 們將在被詢問密碼以前就被拒絕(登陸)了。這或許在阻止明文密碼被傳輸時有用。又見於userlist_deny(See also userlist_deny)。
默認:NO
* validate_cert
若是設置爲yes,接受到的全部的SSL終端簽證必須驗證經過。Self-signed(自定義?)的簽證不能被驗證經過。
默認:NO
* virtual_use_local_privs
若是啓用,虛擬用戶將擁有和本地用戶同樣的權限。默認狀況下,虛擬用戶使用和匿名用戶同樣的權限,或者限制更加嚴格一些(尤爲是寫權限)。
默認:NO
* write_enable
該選項控制是否容許那些可以改變文件系統的FTP命令生效。這些命令有:STOP,DELE,RNFR,RNTO,MKD,RMD,APPE and SITE.
默認:NO
* xferlog_enable
若是啓用,日誌文件將包含上傳和下載的細節。默認狀況,該文件將被放置在/var/log/vsftpd.log,不過這個位置可使用vsftpd_log_file配置選項來更改。
默認:NO(可是示例配置文件中啓用它)
* xferlog_std_format
若是啓用,傳輸日誌文件將以標準的xferlog格式書寫,就像wu-ftpd使用的同樣。這個也許有用,由於你能夠再使用現有的傳輸日誌來生成統計信息。默認的格式可讀性更好,然而,這種風格的日誌文件默認的路徑是/var/log/xferlog,可是你可使用xferlog_file配置選項來更改它。
默認:NO
數值選項
下面是數值選項列表。一個數值選項必須設置爲一個非負的整數。爲了方便掩碼選項,支持八進制數。爲了指定一個八進制數,使用0做爲該數字的第一個數值位。
* accept_timeout
超時,以秒爲單位,用來表示遠程終端(用戶)使用被動傳輸模式創建數據鏈接的超時時間。
默認:60
* anon_max_rate
表示匿名用戶進行鏈接時容許的最大數據傳輸速率,以Bytes/Second爲單位。
默認:0(沒有限制)
* anon_umask
這個選項設置匿名用戶登陸後建立文件的umask(權限屏蔽位)值。注意,若是你想指定爲八進制數值,記住前綴「0」並不等同於基數爲10的整數中的「0」(翻譯有點彆扭,原文:NOTE! If you want to specify octal values, remember the 「0″ prefix otherwise the value will be treated as a base 10 integer!)。
默認:077
* chown_upload_mode
強制匿名用戶上傳文件chown()ed的文件模式(即被chown()後的文件模式)。
默認:0600
* connect_timeout
表示遠程用戶應答PORT傳輸模式的數據鏈接的超時時間,以秒爲時間單位。
默認:60
* data_connection_timeout
表示創建數據鏈接的最長超時時間,以秒爲時間單位。
* delay_failed_login
終止(登陸)並報告登陸失敗的時間間隔,單位爲秒。(原文:The number of seconds to pause prior to reporting a failed login.)
默認:1
* delay_successful_login
暫停(登陸)並容許再次登陸的時間間隔,單位爲秒。(原文:The number of seconds to pause prior to allowing a successful login.)
默認:0
* file_mode
上傳文件的權限屬性。掩碼在該值上有效,你也許但願把它改變爲0777,若是你想要上傳的文件擁有可執行權限。
默認:0666
* ftp_data_port
使用哪個端口發起PORT(端口)鏈接(等同於啓用一個比較弱的connect_from_port_20選項)
默認:20
* idle_session_timeout
idle(意思:空閒時間),空閒會話超時時間,單位爲秒。表示遠程用戶發送FTP命令請求的最大時間間隔。若是超時,遠程用戶將被踢出(服務)。
默認:300
* listen_port
若是vsftpd以standalone模式運行,vsftpd將在(該選項指定的)該端口上監聽接入的FTP鏈接。
默認:21
* local_max_rate
表示(被驗證爲)本地用戶進行鏈接時容許的最大數據傳輸速率,單位爲Bytes/Second。
默認:0(沒有限制)
* local_umask
該值設置本地用戶建立文件的權限屏蔽位。NOTE! If you want to specify octal values, remember the 「0″ prefix otherwise the value will be treated as a base 10 integer!
默認:077
* max_clients
若是vsftpd以standalone模式運行,該選項設置vsftpd容許的最大用戶鏈接數。任何額外的用戶鏈接將會報錯(獲得一個錯誤的消息)。
默認:0(沒有限制)
* max_login_fails
該選項設置多少次登陸失敗後殺死會話。
默認:3
* max_per_ip
若是vsftpd以standalone模式運行,該選項設置容許來自同一個源網絡地址(IP)的最大終端(用戶)鏈接數。若是用戶鏈接超出了該限制將會報錯(獲得一個錯誤的消息)。
默認:0(沒有限制)
* pasv_max_port
可分配給被動傳輸模式的數據鏈接的最大端口。該選項可用來協助防火牆縮小端口的範圍。
默認:0(使用任意端口)
* pasv_min_port
分配給被動傳輸模式的數據鏈接的最小端口。該選項可用來協助防火牆縮小端口範圍。
默認:0(使用任意端口)
* trans_chunk_size
你也許不想改變它,可是嘗試把它設置爲8192之類來得到更加平滑的帶寬限制。
默認:0(讓vsftpd自動選擇一個合理的設置)
字符串選項
下面是一個字符串選項列表
* anon_root
該選項指代vsftpd在匿名用戶登陸後要切換到的目錄。Failure is silently ignored。
默認:(none)
* banned_email_file
該選項是一個文件名,該文件包含有不容許登陸的匿名用戶的e-mail口令列表。這個是啓用deny_email_enable選項後所要查閱的文件。
默認:/etc/vsftpd.banned_emails
* banner_file
該選項是一個文件名,該文件包含有用戶鏈接到(ftp)服務器時所要顯示的文本(歡迎)信息。若是設置了該選項,它將覆蓋由ftpd_banner選項提供的banner string。
默認:(none)
* ca_certs_file
該選項是一個文件名,該文件是vsftpd爲了驗證用戶的數字證書而從中加載的權威證書的文件(This option is the name of a file to load Certificate Authority certs from, for the purpose of validating client certs.)。惋惜的是,默認的SSL CA沒有被使用,由於vsftpd使用了chroot限制文件系統空間。
默認:(none)
* chown_username
這個是匿名上傳文件被賦予的文件擁有者的用戶名。該選項僅與是否設置了chown_uploads選項相關。
默認:root
* chroot_list_file
該選項是一個文件名,該文件包含有一個登陸後將被chroot()限定在其主目錄下的用戶列表。該選項僅與是否啓用 chroot_list_enable選項相關。若是啓用了chroot_local_user選項,那麼該列表文件變成了一個不受chroot()限制的用戶列表。
默認:/etc/vsftpd.chroot_list
* cmds_allowed
該選項指定了一個由逗號隔開的被容許使用的FTP命令列表(post login.USER,PASS and QUIT are always allowed pre-login(不明白post login和pre-login指的是啥意思))。其餘命令被拒絕使用。這是一個鎖定FTP服務器的強大的方法。例子:cmds_allowed=PASV,RETR,QUIT
默認:(none)
* deny_file
該選項可用來設置不被任何方式訪問的文件名模式(或目錄名,等等)。受影響的項目並不被隱藏,但全部嘗試對它們作任何事情(下載,改變目錄,在目錄內affect something等等)都會被拒絕。該選項很是簡單,因此不能應用於嚴格的訪問控制——應優先使用文件系統的權限控制。然而,該選項在某些虛擬用戶的設置中也許比較有用。尤爲是在一個文件能夠經過多個文件名訪問的狀況(也許是因爲符號連接或硬連接),那麼必須採起措施拒絕訪問(該文件)全部的文件名。若是文件名包含有hide_file文件列出的字符串或者它們匹配由hide_file指定的正則表達式,那麼將拒絕訪問該對象。vsftpd的正則表達式匹配代碼是正則表達式全部功能中的一個子集的簡單實現。正由於這樣,你必須細心並且詳盡地測試該選項的任何應用。並且出於重要的安全策略考慮,推薦你使用文件系統的權限控制,由於它們更爲可靠。支持的正則表達式的語法是全部的數字、*、?和{、}等操做符。正則匹配僅支持路徑的最後一個份量,例如,a/b /?被支持而a/?/c不被支持。示例:deny_file={*.mp3,*.mov,.private}
默認:(none)
* dsa_cert_file
該選項指定用來加密SSL鏈接的DSA證書的位置(路徑)
默認:(none ——有一個RSA證書就足夠了)
* dsa_private_key_file
該選項指定用來加密SSL鏈接的DSA私鑰的位置。若是沒有設置該選項,則該私鑰被預期(be expected)放置在和證書相同的位置。
默認:(none)
* email_password_file
該選項可用來爲secure_email_list_enable選項的使用提供一個可選文件。
默認:/etc/vsftpd.email_passwords
* ftp_username
這個是用來處理匿名FTP的用戶名。該用戶的主目錄是匿名FTP空間的根。
默認:ftp
* ftpd_banner
該字符串選項容許你更改vsftpd在一個鏈接第一次連進來時顯示歡迎(問候)信息。
默認:(none——顯示默認的vsftpd信息)
* guest_username
到布爾選項設置guest_enable中查看guest login的組成。該設置指定guest用戶映射(be mapped to)的真實用戶名。
默認:ftp
* hide_file
該選項用來設置一個在(使用ls命令等)列出目錄中文件時應該隱藏的文件名模式(目錄名等)。儘管是隱藏起來,文件、/目錄等對於一些知道實際文件名的用戶(clients)是徹底能夠訪問的。名字包含有hide_file列出的字符串或者匹配由hide_file指定的正則表達式的對象將被隱藏。 vsftpd的正則表達式匹配代碼是正則表達式全部功能中的一個子集的簡單實現。更多的可查看deny_file選項中關於正則表達式支持的語法。示例:hide_file={*.mp3,.hidden,hide*,h?}
默認:(none)
* listen_address
若是vsftpd以standalone模式運行,默認的監聽地址(全部的網絡接口)可使用該設置更改。提供一個數值形式的IP地址。
默認:(none)
* listen_address6
相似listen_address,可是指定默認的監聽對象是IPv6地址(僅當設置了listen_ipv6才使用)。格式是標準的IPv6地址格式。
默認:(none)
* local_root
該選項指定了本地用戶(i.e.非匿名用戶)登陸後vsftpd將要切換到的目錄。
默認:(none)
* message_file
該選項是咱們進入到一個新目錄時vsftpd所要查找的文件的文件名,該文件的內容將顯示給遠程用戶。該選項僅因而否啓用了dirmessage_enable選項相關。
默認:.message
* nopriv_user
這是vsftpd使用的幾乎沒有特權的用戶名,要注意這應該是一個專用的用戶,而不只僅是nobody。nobody用戶在大多數機器上被用於許多重要的事情。
默認:nobody
* pam_service_name
該字符串是vsftpd將要使用的PAM服務名。
默認:vsftpd
* pasv_address
使用該選項來更改vsftpd在應答PASV(被動傳輸模式)命令時公佈的IP地址。提供一個數值形式的IP地址,除非啓用了pasv_addr_resolve選項,這種狀況下你能夠提供一個在啓動時則被DNS(域名服務)解析主機名。
默認:(none —— 地址取自鏈接進來的socket)
* rsa_cert_file
該選項指定用來加密SSL鏈接的RSA證書的位置(路徑)。
默認:/usr/share/ssl/certs/vsftpd.pem
* rsa_private_key_file
該選項指定用來加密SSL鏈接的RSA私鑰的位置。若是該選項沒被設置,那麼該私鑰預期的位置和證書的相同。
默認:(none)
* secure_chroot_dir
該選項應該是一個空目錄名。並且,ftp用戶對該目錄沒有寫權限。偶爾在vsftpd不須要訪問文件系統時,該目錄被用做一個安全的chroot() jail(監獄)。
默認:/var/run/vsftpd
* ssl_ciphers
該選項被用來選擇vsftpd用來加密SSL鏈接的SSL密鑰。查閱ciphers的手冊頁面來了解更爲詳盡的細節。限定ciphers是一個十分有用的安全預警,由於它能夠阻止不懷好意的遠程團體強制使用一個他們已經發現了問題的密鑰。
默認:DES-CBC3-SHA
* user_config_dir
這個功能強大的選項容許基於(每個)用戶更改在manual page(手冊頁、指南頁面)中指定的任意配置選項。若是你設置user_config_dir爲/etc/vsftpd_user_conf,而後使用 「chris」用戶登陸(FTP服務器),那麼vsftpd在整個會話期間將使用/etc/vsftpd_user_conf/chris文件上的設置。該配置文件的格式和手冊頁描述的細節同樣!請注意並非全部的設置基於每個用戶都生效。例如,許多設置先於用戶會話的開始。不影響基於用戶的設置行爲的例子包括listen_address、banner_file、max_per_ip、max_clients、xferlog_file等。
默認:(none)
* user_sub_token
該選項結合虛擬用戶是十分有用的。它用來爲每個虛擬用戶自動生成一個主目錄(基於一個模板)。例如,若是由guest_username指定的真實用戶的主目錄是/home/virtual/$USER,並且user_sub_token設置爲$USER,那麼當虛擬用戶fred登陸進來時,ta 將登陸到/home/virtual/fred目錄(一般已經被chroot()了,原文:usually chroot()’ed)。若是local_root選項包含user_sub_token,該選項依然生效。
默認:(none)
* user_list_file
該選項是user_list_enable有效時加載的文件的文件名。
默認:/etc/vsftpd.user_list
* vsftpd_log_file
該選項是寫入vsftpd風格的日誌文件的文件名。該日誌文件只有在設置了xferlog_enable選項並且 xferlog_std_format選項沒被設置的狀況下才被寫入。可供選擇的,若是你設置了dual_log_enable選項,該文件依然能夠被寫入。一個更爲複雜的狀況——若是你設置了syslog_enable選項,那麼該文件不被寫入,做爲替代,全部的日誌輸出將被送往系統日誌。
默認:/var/log/vsftpd.log
* xferlog_file
該選項是寫入wuftpd風格的日誌文件的文件名。僅當設置了xferlog_enable和xferlog_std_format選項,傳輸日誌才被寫入(該文件)。可供選擇的,若是你設置了dual_log_enable選項,該文件依然能夠被寫入。
默認:/var/log/xferlog