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.