twbsd.org
 
  Select Language: Home  SmbFTPD Forum 

SmbFTPD

简介

文件

下载


 SmbFTPD

SmbFTPD 使用手册

上一页
安装
  下一页
虚拟使用者

第三章 smbftpd.conf

内容列表

系统区段

选项名称: ServerName

语法:

ServerName "Server Name"

说明:

这个选项可以用来定义您的服务器名称,当使用者登入后将看到:

Connected to localhost.com.
220 Server Name FTP server (SmbFTPD Ver 0.9) ready.
Name (localhost:alex):

如果您没有设定 ServerName,则 SmbFTPD 将显示系统的 Hostname。

默认值:

无 (系统的 Hostname)


选项名称: ShowProgramVersion

语法:

ShowProgramVersion Yes|No

说明:

这个选项可以用来设定是否要显示 SmbFTPD 的版本信息,则设为 No,则不会显示。

Connected to localhost.com.
220 Server Name FTP server (SmbFTPD Ver 2.0) ready.
Name (localhost:alex):

如果您没有设定 ShowProgramVersion,则 SmbFTPD 默认将显示版本信息。

默认值:

ShowProgramVersion    Yes


选项名称: ListenOnAddress

语法:

ListenOnAddress 192.168.0.1

说明:

当使用 -D 模式 (standalone) 启动 FTP 时,您可以指定只接受连到这个地址的联机。例如,假设您有二张网络卡,一个 IP 是 172.16.1.1,另一个是 61.62.63.64,您可以设定 ListenOnAddress 172.16.1.1 以表示只接受连到这个 IP 的联机。

如果您要接受所有联机,则请移除这个选项。

默认值:

无 (接受所有联机)


选项名称: Port

语法:

Port prot_num|service

说明:

当使用 -D 模式 (standalone) 启动 FTP 时,您可以指定 SmbFTPD 所要使用的 Port。一般的 FTP port 为 21,您也可以使用 ftp 这个字符串表示,系统会自动去 /etc/service 中查到相对的 port。

默认值:

Port ftp


选项名称: Umask

语法:

Umask umask

说明:

当用户建立档案或目录时,所要使用的 umask。例如,您想要让使用者新增档案时的权限为 644,则设 umask 为 022。详细关于 umask 的设定请 man 2 umask。这个选项的值必须为 8 进位的数字,如 022、027 等。

默认值:

Umask 022


选项名称: PidFile

语法:

PidFile /some/where/file

说明:

这是您要存放 smbftpd pid 档的地方,当使用 daemon 模式时,我们会将 smbftpd 的 process id 写到这个档案中。

默认值:

无 (不写 pid)


选项名称: DebugMode

语法:

DebugMode Yes|No

说明:

是否要用 syslog 记录更多除错用的讯息。

默认值:

DebugMode No


选项名称: LogCommand

语法:

LogCommand Yes|No

说明:

是否要使用 syslog 的 LOG_FTP 记录用户执行过的 FTP 指令。如果您将这个指令设为 Yes, 则使用者所执行的 retrieve(get)、store(put)、append、delete、mkdir、rmdir、rename 等都会被选录下来,并用记录该指令的文件名参数。在 FreeBSD 中,syslogd 会将这些记录在 /var/log/xferlog 中。

默认值:

LogCommand No


选项名称: DoWtmpLog

语法:

DoWtmpLog Yes|No

说明:

是否要将 ftp 用户登入记录写在 /var/log/wtmp 中。

默认值:

DoWtmpLog No


选项名称: DisableEPSV

语法:

DisableEPSV Yes|No

说明:

是否要停用 EPSV 这个指令。如果您的服务器位于一些旧的防火墙后面,而一直无法联机,您可以设着停用 EPSV。

默认值:

DisableEPSV No


选项名称: RestrictedPorts

语法:

RestrictedPorts Yes|No

说明:

文件这个选项设为 No 时,smbftpd 将不检查限制使用者使用的连结埠。我们预设限制使用者在使用 PORT 命令时,只能使用 unprivileged ports (> 1024),不过这样将违反 FTP protocol。

默认值:

RestrictedPorts Yes


选项名称: PassiveModePortRange

语法:

PassiveModePortRange    low-high

说明:

您可以设定 SmbFTPD 在 Passive Mode 下所要使用的端口范围。如果您的 FTP 服务器位于 NAT 后,您可以在 router 上设定将这里所设定的端口范围也转到内部来。

假设您要使用 Port 40000 到 Port 50000,您可以设定:

PassiveModePortRange    40000-50000

请注意端口范围应该介于 1024 到 65535 之间。

默认值:


使用者登入控制

选项名称: MaxConnection

语法:

MaxConnection number

说明:

这个选项可以让您控制最多同时联机的数量。如果 MaxConnection 大于 0,则在联机数目到达您所设定的值时,使用者就无法再登入。如果值为 0,则表示不做任何限制。

默认值:

MaxConnection 0


选项名称: MaxConnectionPerIP

语法:

MaxConnectionPerIP number

说明:

这个选项可以让您控制每一个联机来源 IP 最多同时联机的数量。如果值为 0,则表示不做任何限制。如果您要使用这个设定,您必须先设定 MaxConnection。

但不建议您将这个值设为小于 2,因为许多 FTP client 都会同时开二个以上的联机。

默认值:

MaxConnectionPerIP 0


选项名称: VirtualUserMapping

语法:

VirtualUserMapping    username

说明:

如果您不希望使用真实的使用者登入 FTP,您可以设定让每一个登入的使用者都对映到同一个真实使用者。首先,您必须设定虚拟使用者的认证方式 (设定 VirtualUserAuthMethod),接着设定 VirtualUserMapping 以指定要将虚拟使用者对映到什么身份。如此一来,虚拟使用者所建立的档案,或是在 Unix 文件系统上的访问权限全部都会变成这个选项所设定的用户身份。

例如,您要使用 MySQL 进行身份认证,并将登入的使用者都对映到 ftp 这个真实使用者:

VirtualUserMapping    ftp

请注意,您如果有设定 VirtualUserMapping,您也必须设定 VirtualUserAuthMethod 及 VirtualUserAuthConfig。

默认值:


选项名称: VirtualUserAuthMethod

语法:

VirtualUserAuthMethod    mysql|pgsql|text

说明:

设定虚拟使用者的认证方式,您可以使用 MySQL、PostgreSQL、或是纯文本文件存放虚拟用户的数据 (账号、密码、群组、家目录)。

默认值:


选项名称: VirtualUserAuthConfig

语法:

VirtualUserAuthConfig    /path/to/the/VirtualUserAuthMethod.conf

说明:

设定 VirtualUserAuthMethod 中所使用者认证方式的配置文件所在路径。例如,如果使用 MySQL:

VirtualUserAuthConfig    /usr/local/etc/smbftpd/smbftpd_mysql.conf

如果使用 PostgreSQL:

VirtualUserAuthConfig    /usr/local/etc/smbftpd/smbftpd_pgsql.conf

如果使用纯文本档:

VirtualUserAuthConfig    /usr/local/etc/smbftpd/smbftpd_user.conf

如果您要使用纯文本档,您可以使用 smbftpd-user 这个指令来建立/编辑/删除使用者。

默认值:


选项名称: RequireValidShell

语法:

RequireValidShell Yes|No

说明:

当 RequireValidShell 为 Yes 时,使用者必须有合法的 shell 才可以登入。合法的 shell 是以 getusershell(3) 这个函数取得,大多数的操作系统中,合法的 shell 都被定义在 /etc/shells 中。

默认值:

RequireValidShell No


选项名称: EmptyPasswdLogin

语法:

EmptyPasswdLogin Yes|No

说明:

是否允许空密码的用户登入。

默认值:

EmptyPasswdLogin No


选项名称: NoLoginList

语法:

NoLoginList MinUID
NoLoginList /path/to/no_login_ftp_users
NoLoginList user1,user2,@group1,@group2

说明:

设定您不想让其登入的使用者,在 NoLoginList 中的使用者或群组不可以登入。

NoLoginList 的参数可以是一个档案、最小的 UID、或是一个使用者及群组名单。

  • 如果是使用者或是群组,如果是设定群组,请在组名前加上 @。当要设定多个使用者或群组时,请使用逗号 , 分开。
  • 如果是数字,则视为可以登入的最小 UID,如果使用者 UID < MiniUID,则不允许登入。
  • 如果设定的值是以 / 为开头的档案绝对路径,则使用档案中的使用者群组设定。

如果您使用档案,档案中列出的每一行都分别为一个使用者或群组。例如,您可以建立 /etc/ftpusers,档案内容如下:

user1
user2
@group1
@group2

默认值:

NoLoginList 500


选项名称: TimeOut

语法:

TimeOut seconds

说明:

当使用者超过这个时间没有任何动作时,则中断联机。单位为秒。

默认值:

TimeOut 900


选项名称: MaxTimeOut

语法:

MaxTimeOut seconds

说明:

使用者可以自行设定 timeout 的时间,但我们可以在这里设定最长 timeout 的时间。预设是 2 小时。

默认值:

MaxTimeOut 7200


FTP 目录权限控制

选项名称: DefaultMode

语法:

DefaultMode SMB|Normal

说明:

SmbFTPD 有二种模式,一个是 SMB mode,另一个是 Normal mode。在 SMB 模式中,SmbFTPD 会使用类似 Samba 的共享文件夹权限设定,系统会读取 ShareConfPath 中的用户目录权限控制来设定他对于文件夹的访问权限。而 Normal 模式中,SmbFTPD 就像一般 FTP Daemon 一样。

默认值:

DefaultMode Normal


选项名称: ExceptionList

语法:

ExceptionList user1,user2,@group1,@group2

说明:

您可以在 ExceptionList 中设定不要使用 DefaultMode 的使用者及群组。例如,您如果希望所有人都使用 SMB 模式,但群组 wheel 要使用一般模式,则请将 DefaultMode 设为 SMB,再在 ExceptionList 中设定 @wheel 即可。

ExceptionList 的参数可以是使用者或群组,如果是群组的话,请在组名前加上 @。例如:

ExceptionList user1,user2,@group1,@group2

默认值:


选项名称: ShareConfPath

语法:

ShareConfPath /some/where/smbftpd_share.conf

说明:

设定文件夹设定的 smbftpd_share.conf 所在路径。如果您设定 DefaultMode 为 SMB,或是 DefaultMode 为 Normal 但有 ExceptionList,则一定要指定 smbftpd_share.conf 的所在路径。

我们会检查 smbftpd_share.conf 中的下列关键设定:

  • path:文件夹的路径。
  • rw:可以有写入权限的使用者或群组。
  • ro:可以有只读权限的使用者或群组。
  • browseable:文件夹是否要设为隐藏。若设为 no,则用户在根目录 ls 时,将看不到该文件夹,但依然可以 cd 到该文件夹中。
  • disable_download:设定不可以下载的使用者。若使用者可以读取该文件夹内容,您还可以设定让它无法执行下载的动作。
  • disable_ls:设定在文件夹中执行 ls 时,不可以看到文件夹内容的使用者及群组。
  • disable_modify:设定不可以修改该文件夹中的档案或目录的用户及群组。如果该使用者具有读写的权限,但又在此列表中,则该使用者只能上传档案或是建立新的目录,而无法执行 rename、delete、rmdir、chmod 等指令。

范例一:

这个范例是有一个文件夹名为 public,其所在目录为 /home/public,在 samba 群组中的使用者可以有只读的权限,而 root 可以有写入的权限。

[public]
	path = /home/public
	rw = root
	ro = @samba

范例二:

文件夹名称为 private,只有 wheel 群组的人可以写入,而且这个文件夹是隐藏的,wheel 群组的人登入后使用 ls 看不到这个文件夹,但是可以 cd 进去文件夹中。

[private]
	path = /root/ftp
	rw = @wheel
	browseable = no

范例三:

文件夹名称为 upload, 使用者「ftp」及「anonymous」只能上传档案或建立新目录,但是无法看到该文件夹中的内容,也不可以下载或是修改现有的档案。但在使用者「wheel」群组中的使用者可以具有全部的读写权限。

[upload]
	path=/home/upload"
	rw=ftp,@wheel
	disable_ls=ftp
	disable_modify=ftp
	disable_download=ftp

请注意,匿名用户「ftp」及「anonumous」会被对映到真实的使用者「ftp」,如果您要设定的是匿名的使用者「ftp」及「anonymous」,请使用「ftp」这个使用者。

如果您设定某个使用者对于某个文件夹有写入的权限,但该使用者却无法写入,因为除了 SmbFTPD 的权限控制外,您还必须对文件夹的 UNIX 权限做一些设定,让该文件夹的 UNIX 权限允许该使用者写入。

默认值:


选项名称: ChrootSet

语法:

ChrootSet user path

ChrootSet @group path

ChrootSet @ path

说明:

在这个列表中的使用者或群组会被 chroot 到您所指定的路径中,也就是让它将您所设定的路径做为根目录,用户无法到该路径以外的地方。如果有需要,您可以同时设定多条 ChrootSet 的规则。

这个参数的第一个字段是使用者名称或群组,如果在名称之前加上 @,表示是群组,所有在该群组中的使用者都会被套用到群组的设定中。而另一个特别的用法是只有一个 @ 符号,表示所有用户都会被套用到这个设定中。

请注意,被设定为 chroot 的使用者就算 DefaultMode 被归类为 SMB mdoe 也一定会被强制使用 Normal mode。

这里有几个设定的范例:

范例一:

使用者 anonymous 登入时,将它 chroot 到 /var/spool/ftp

ChrootSet anonymous /var/spool/ftp

范例二:

所有群组为 ftpgroup 的使用者都使用他们的家目录 (home) 做为根目录。例如,用户 alex 的家目录为 /home/alex,则其根目录为 /home/alex,而 jack 则是 /home/jack。我们以 ~ 符号表示家目录,系统会自动转换为真正的路径。

ChrootSet @ftpgroup ~

范例三:

所有 webusers 这个群组的人都以其家目录下的 public_html 为根目录。这对于您要开放 FTP 给某些使用者,但又不想让他们去存取系统中其它路径时十分有用。

ChrootSet @webusers ~/public_html

范例四:

所有用户都必须以其家目录为根目录。

ChrootSet @ ~

默认值:


选项名称: ShowSymlinks

语法:

ShowSymlinks Yes|No

说明:

当 ShowSymlinks 为 No ,我们在使用者 ls 时不会列出 symbolic link 的档案或目录。

默认值:

ShowSymlinks No


选项名称: ShowDotFiles

语法:

ShowDotFiles Yes|No

说明:

是否要显示档案或目录名称开头为 "." 的档案。

默认值:

ShowDotFiles Yes


选项名称: SupportUTF8Client

语法:

SupportUTF8Client Yes|No

说明:

是否支持 UTF-8 的客所端联机。传统的 FTP 是使用 codepage 来传输档案,所以档名同时不能出现各国语言。RFC 2640 开如支援 UTF-8 的 FTP client。

如果您将 SupportUTF8Client 设为 Yes,我们会判断 client 及本地文件系统来决定是否要进行 codepage 和 UTF-8 的转换。所以,您必须再设定 CharsetEncoding,我们会使用 CharsetEncoding 来做为转换的依据。

默认值:

SupportUTF8Client No


选项名称: UsingUTF8FileSystem

语法:

UsingUTF8FileSystem Yes|No

说明:

本地所使用的文件名是否为 UTF-8。如果文件名是 UTF-8,当 client 使用非 UTF-8 联机时,我们会使用 CharsetEncoding 的设定来将档名转成 UTF-8。反之,如果文件系统不是 UTF-8,但 client 是 UTF-8,我们则会将档名转为非 UTF-8。

请注意,如果您使用 UTF-8 的文件系统,则 smbftpd_share.conf 内容也必须是 UTF-8。

默认值:

UsingUTF8FileSystem No


选项名称: CharsetEncoding

语法:

CharsetEncoding encoding

说明:

在进行 codepage 转换成 UTF-8 时,要使用何种编码进行转换。

这里有几个编码建议:

  • 如果您使用英文、法文、德文、意大利文、西班牙文、葡萄牙文、丹麦文、挪威文、瑞典语、荷兰文、或是其它的西欧语系,请设为 CP1252。
  • 如果您使用繁体中文,请设为 CP950。
  • 如果您使用简体中文,请设为 CP936。
  • 如果您使用俄罗斯语,请设为 CP1251。
  • 如果您使用日本语,请设为 CP932。
  • 如果您使用韩文,请设为 CP949。
  • 如果您使用希腊文,请设为 CP1253。
  • 如果您使用捷克文,请设为 CP1250。

您可以在这里找到更多可能的设定值:http://www.gnu.org/software/libiconv/

另外,这是 MS Windows 编码设定:http://msdn2.microsoft.com/en-us/library/ms903928.aspx

默认值:


匿名用户控制

选项名称: AnonymousLogin

语法:

AnonymousLogin Yes|No

说明:

是否允许匿名用户登入。匿名的使用者账号为 ftp 或 anonymous。如果您要允许匿名用户登入,您必须先新增一个 ftp 的系统用户。

默认值:

AnonymousLogin No


选项名称: AnonymousOnly

语法:

AnonymousOnly Yes|No

说明:

是否只允许匿名用户登入。

默认值:

AnonymousOnly No


选项名称: AnonymousReadOnly

语法:

AnonymousReadOnly Yes|No

说明:

当匿名用户登入时,进入只读模式,不允许匿名用户进行会变更文件系统的指令。

默认值:

AnonymousReadOnly No


文件传输控制

选项名称: TransferLog

语法:

TransferLog /var/run/smbftpd.log

说明:

这个选项用来设定用户上传及下载的档案记录。您可以设定当使用者下载或上传档案时,将它所上传或下载的档名、传输时间、大小等数据写在这个档案中。

默认值:

无记录


选项名称: MaxDownloadRate

语法:

MaxDownloadRate @grou|user rate

说明:

您可以针对使用者及群组设定最大的下载带宽。带宽 rate 的单为是 KB/s。您也可以设定多条 MaxDownloadRate 规则。

这个选项的第一个参数可以是使用者或群组,如果是群组,则名称开头必须加上 @。而若只有一个 @ 符号,表示所有用户都要套用到该规则。例如:

MaxDownloadRate @group100 100
MaxDownloadRate anonymous 20
MaxDownloadRate @friends 1000

默认值:

无限制


选项名称: MaxUploadRate

语法:

MaxUploadRate @grou|user rate

说明:

您可以针对使用者及群组设定最大的上传带宽。带宽 rate 的单为是 KB/s。您也可以设定多条 MaxDownloadRate 规则。

这个选项的第一个参数可以是使用者或群组,如果是群组,则名称开头必须加上 @。而若只有一个 @ 符号,表示所有用户都要套用到该规则。例如:

MaxUploadRate @group100 100
MaxUploadRate anonymous 20
MaxUploadRate @friends 1000

默认值:

无限制


SSL/TLS 控制

选项名称: SecurityPolicy

语法:

SecurityPolicy secure|nosecure|both

说明:

这个选项可以让您设定是否要启用 SSL/TLS 加密。您可以 强制一定要使用加密联机,或是关闭加密功能,或是同时允许加密及非加密模式。各种模式的说明如下:

  • secure:只允许加密联机。
  • nosecure:只允许非加密联机。
  • both:同时允许加密及非加密联机。

默认值是同时允许加密及非加密联机。

默认值:

SecurityPolicy nosecure


选项名称: EncryptionType

语法:

EncryptionType tls|ssl|both

说明:

当您要使用加密联机时,您可以选择要支持哪一种加密模式。SmbFTPD 支持二种模式:SSL 及 TLS,您可以使用下列设定值以选择要使用另一种模式:

  • TLS:只使用 RFC 2228 所定义的 FTP-TLS 模式。
  • SSL:只支持 FTP-SSL 模式。
  • Both:同时支持 SSL 及 TLS。

默认值是同时支持 SSL 及 TLS。

默认值:

EncryptionType both


选项名称: NormalUserMustSecure

语法:

NormalUserMustSecure Yes|No

说明:

当 NormalUserMustSecure 设为「Yes」时,表示一般使用者登入时一定要使用加密的联机,否则无法登入。

我们在 FTP 服务中使用 SSL/TLS 的目的是为了避免用户的机密数据在网络上以明码流传,为了强制所有使用者都使用比较安全的模式联机,您可以将这个选项设为「Yes」。

默认值:

NormalUserMustSecure No


选项名称: AnonymDisableSecure

语法:

AnonymDisableSecure Yes|No

说明:

当 AnonymDisableSecure 设为「Yes」时,系统将不允许匿名的使用者使用加密的联机。

既然 SSL/TLS 的目的是避免用户数据在网络上流传,而匿名用户是任何人都可以使用,保护匿名用户的数据似乎比较不需要。所以您可以将这个选项设为「No」,以避免匿名用户也使用加密联机登入,徒然耗费 CPU 的资源。

默认值:

AnonymDisableSecure No


选项名称: SSLCertFile

语法:

SSLCertFile /path/to/server.crt

说明:

设定所要使用的凭证,这个凭证会被送到客户端做为加密用。如果您没有设定这个选项,默认会使用 /usr/local/etc/smbftpd/ssl.crt/server.crt。

您也可以和 Apache+SSL 共享凭证,Apache 的 SSL 凭证通常位于 /usr/local/apache/conf/ssl.crt/server.crt。

默认值:

SSLCertFile /usr/local/etc/smbftpd/ssl.crt/server.crt


选项名称: SSLKeyFile

语法:

SSLKeyFile /path/to/server.key

说明:

这个选项是用来设定您上述设定的凭证所对映的 private key。这个 private key 和凭证是成对的,预设是在 /usr/local/etc/smbftpd/ssl.key/server.key。

如果您使用 Apache SSL 凭证,则这里也必须设定使用 Apache 的 key,通常位于 /usr/local/apache/conf/ssl.key/server.key。

默认值:

SSLKeyFile /usr/local/etc/smbftpd/ssl.key/server.key


选项名称: SSLCACertFile

语法:

SSLCACertFile /path/to/ca-bundle.crt

说明:

这个选项是用来设定您上述设定中继凭证。用途和 Apache 设定的 SSLCACertificateFile 一样。

默认值:


选项名称: SSLCipherSuite

语法:

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5

说明:

这个选项是用来设定所支持的加密算法。您可以参考 Apache 的设定说明。

默认值:

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5


上一页
安装

索引
您可以在 http://www.twbsd.org 取得本文件

下一页
虚拟使用者

Copyright © 2002-2024 Alex Wang from www.twbsd.org. All rights reserved.