twbsd.org
 
  Select Language: Home  SmbFTPD Forum 

SmbFTPD

简介

文件

下载


 Bug Tracker

SmbFTPD 使用手册

上一页
smbfptd.conf
  下一页
相关档案

第四章 虚拟使用者

内容列表

4.1 使用 MySQL

4.2 使用 PostgreSQL

4.3 使用纯文本档

4.1 使用 MySQL

如果您要使用 MySQL 进行虚拟使用者的身份认证,请先在 smbftpd.conf 中加入下列设定:

VirtualUserMapping	ftp
VirtualUserAuthMethod	mysql
VirtualUserAuthConfig	/usr/local/etc/smbftpd/smbftpd_mysql.conf

接着请修改 /usr/local/etc/smbftpd/smbftpd_mysql.conf,设定 MySQL 的 IP、数据库名称、用户、及密码。

在 MySQL 数据库中,我们建立一个名为 user_table 的表格:

CREATE TABLE user_table(
	name varchar(64),
	password varchar(256),
	group_name varchar(64),
	home varchar(256)
);

然后在表格中新增用户,您就可以使用 MySQL 的虚拟使用者登入了。

请注意,在用户的密码字段中,我们可以使用下列二种编码:"plaintext" 及 "crypt"。plaintext 指的是明码,就是直接将密码以文字方式存放,不进行任何编码。crypt 是使用 PHP 或是 C 语言的 crypt() 编码, 它可以是 md5, SHA256, SHA512 等等编码模式。

以下是一个使用 PHP 产生 crypt 的加密密码方式:

$salt = "$6$".time().rand()."smbftpd";
$encrypted_pass = crypt($user_input_password, $salt);

当用户输入的密码为 $user_input_password,我们将它加密为 $encrypted_pass 之后,就可以将 $encrypted_pass 存入数据库的 password 字段。

4.2 使用 PostgreSQL

如果您要使用 PostgreSQL 进行虚拟使用者的身份认证,请先在 smbftpd.conf 中加入下列设定:

VirtualUserMapping	ftp
VirtualUserAuthMethod	pgsql
VirtualUserAuthConfig	/usr/local/etc/smbftpd/smbftpd_pgsql.conf

接着请修改 /usr/local/etc/smbftpd/smbftpd_pgsql.conf,设定 PostgreSQL 的 IP、数据库名称、用户、及密码。

在 PostgreSQL 数据库中,我们建立一个名为 user_table 的表格:

CREATE TABLE user_table(
	name varchar(64),
	password varchar(256),
	group_name varchar(64),
	home varchar(256)
);

然后在表格中新增用户,您就可以使用 PostgreSQL 的虚拟使用者登入了。

请注意,在用户的密码字段中,我们可以使用下列二种编码:"plaintext" 及 "crypt"。plaintext 指的是明码,就是直接将密码以文字方式存放,不进行任何编码。crypt 是使用 PHP 或是 C 语言的 crypt() 编码, 它可以是 md5, SHA256, SHA512 等等编码模式。

以下是一个使用 PHP 产生 crypt 的加密密码方式:

$salt = "$6$".time().rand()."smbftpd";
$encrypted_pass = crypt($user_input_password, $salt);

当用户输入的密码为 $user_input_password,我们将它加密为 $encrypted_pass 之后,就可以将 $encrypted_pass 存入数据库的 password 字段。

4.3 使用纯文本档

如果您要使用纯文本档案进行虚拟使用者的身份认证,请先在 smbftpd.conf 中加入下列设定:

VirtualUserMapping	ftp
VirtualUserAuthMethod	text
VirtualUserAuthConfig	/usr/local/etc/smbftpd/smbftpd_user.conf

接着请使用 smbftpd-user 这个指令来新增用户:

# ./smbftpd-user -h

Usage: ./smbftpd-user -[aedt] user [-t type]

options:
	-s file 	Set the path of smbftpd.conf
	-a user 	Add a smbftpd virtual user into text file
	-e user 	Edit a smbftpd virtual user into text file
	-d user 	Delete a smbftpd virtual user into text file
	-g user 	Get the status of user.
			The user can be real user or mysql/pgsql/text virtual
			user. We will print the available share and permission
			of the user.
	-h		Print this help message

您可使使用 -a 指令来新增用户,例如,新使用者 alex:

# ./smbftpd-user -a alex
Group name: users
Home: /noexist
Enter password: 
Enter password again: 
User [alex] is add.

我们就可以在 /usr/local/etc/smbftpd/smbftpd_user.conf 文件中看到该用户的数据。如果您要删除使用者,可以直接修改该档案,或是使用 smbftpd-user -d user 来删除使用者。

另外,您也可以使用 smbftpd-user -g user 来查看使用者目前的权限设定 (不限定为虚拟使用者,也可以是真实使用者)。例如:

# ./smbftpd-user -g alex

Authentication Method: text

Login : alex
Real user : ftp
Home : /noexist
Anonymous : No
Download bandwidth : 100 KB/s
Upload bandwidth : 2000 KB/s
Mode : smb
Available shares :
	[public]
		Path : /volume1/home/alex
		Writeable : Yes
		Browseable : Yes
		List files : No
		Download : Yes
		Modify data : No
	[music]
		Path : /volume1/synosrc
		Writeable : No
		Browseable : Yes
		List files : Yes
		Download : Yes
		Modify data : Yes

上一页
smbfptd.conf

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

下一页
相关档案

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