代码: |
用户 <-> vsftpd <-> PAM模块 <-> 用户和密码数据库 |
引用: |
/etc/pam.conf #pam服务的配置 /etc/pam_pgsql.conf #pam_pgsql.so的配置 /usr/local/etc/vsftpd.conf #vsftpd的配置 |
引用: |
/usr/ports/ftp/vsftpd /usr/ports/databases/postgresql7 /usr/ports/security/pam-pgsql |
代码: |
# su pgsql # initdb |
引用: |
This database system will be initialized with username "pgsql". This user will own all the data files and must also own the server process. Creating directory /usr/local/pgsql/data Creating directory /usr/local/pgsql/data/base Creating directory /usr/local/pgsql/data/global Creating directory /usr/local/pgsql/data/pg_xlog Creating template1 database in /usr/local/pgsql/data/base/1 [snip] Success. You can now start the database server using: /usr/local/bin/postmaster -D /usr/local/pgsql/data or /usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start |
代码: |
# /usr/local/etc/rc.d/010.pgsql.sh start |
代码: |
CREATE TABLE "ftp" ( "ID" int4 DEFAULT nextval('public."ftp_ID_seq"') NOT NULL , "usr" varchar(32) NOT NULL , "pass" varchar(32) NOT NULL , "expired" bool DEFAULT false NOT NULL , "newtok" bool DEFAULT false NOT NULL ); |
代码: |
ID | usr | pass | expired | newtok ----+---------+---------+---------+-------- 1 | ftp | ftp | f | f 2 | ftp1 | ftp1 | t | t 4 | ftp3 | ftp3 | f | f 6 | go | abcdef | f | f 3 | ftp2 | ftp2 | f | f 5 | downftp | downftp | f | f |
代码: |
#host = 127.0.0.1 这个不须要,默认是本地链接的。若是要链接远程服务器,请设置你的IP,而且去掉# database = mydb user = pamusr #刚才添加的访问PgSQL的用户 password = pamusr #访问PgSQL的密码 table = ftp user_column = usr #用户名在数据表中的字段 pwd_column = pass #用户密码在数据表中的字段 expired_column = expired #用户是否已通过期的字段名 newtok_column = newtok #用户是否须要修改密码的字段 |
代码: |
# service-name module-type control-flag module-path argument vsftpd auth required pam_pgsql.so # vsftpd account required pam_pgsql.so # vsftpd password required pam_pgsql.so# |
代码: |
anonymous_enable=NO local_enable=YES write_enable=NO anon_upload_enable=NO anon_mkdir_write_enable=NO anon_other_write_enable=NO chroot_local_user=YES guest_enable=YES dual_log_enable=YES guest_username=virtual #咱们刚才增长的本地用户,虚拟用户将会享有这个名为virtual本地用户的权限。 pam_service_name=[color=red]vsftpd[/color] # 这个就是我在pam.conf里头设置的pam服务的名称,没有这一项,vsftpd是用名为ftp的pam服务。 listen=YES secure_chroot_dir=/usr/local/share/vsftpd/empty #请加上这一项,vsftpd默认的secure_chroot_dir是/usr/share/empty,用port安装的话,不会自动建立这个目录,而是放在/usr/local/share/vsftpd/empty。固然你也能够本身建立一个目录。 |
代码: |
/usr/local/libexec/vsftpd 或者 /usr/local/libexec/vsftpd 配置文件名(如vsftpd.conf.1, vsftpd.conf.2) 通常他是搜索/usr/local/etc目录,若是你放在其余地方就要写上完整的路径。 |
代码: |
> ftp 192.168.1.10 Connected to 192.168.1.10. 220 (vsFTPd 1.2.0) Name (192.168.1.10:powerplane): downftp 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. |