Home | SmbFTPD | Forum |
SmbFTPD | SmbFTPD 使用手冊
第四章 虛擬使用者 內容列表
如果您要使用 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 欄位。 如果您要使用 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 欄位。 如果您要使用純文字檔案進行虛擬使用者的身份認證,請先在 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
|
Copyright © 2002-2024 Alex Wang from www.twbsd.org. All rights reserved. |