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-2025 Alex Wang from www.twbsd.org. All rights reserved. |