代碼: |
用戶 <-> 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. |