virtual user ftp July 12, 2006
Posted by Jeff in : Computer , trackback記錄一下弄的過程給自己看
簡單講就是 vsftp + pam_mysql 認證
所以要先把 vsftp , mysql, pam_mysql 裝好
然後 mysql 開一個資料庫
裡面一個 table 放 user 資料
我是開這樣
+----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | sn | int(11) | YES | | NULL | | | username | varchar(16) | YES | | NULL | | | password | varchar(16) | YES | | NULL | | | status | int(1) | YES | | NULL | | +----------+-------------+------+-----+---------+-------+
然後在 /etc/pam.d/vsftp 加上兩行
auth sufficient /usr/lib/security/pam_mysql.so user=*db_username* passwd=*db_password* host=*db_server* db=*db_name* table=*table_name* usercolumn=*username_field_name* passwdcolumn=*password_field_name* crypt=0 where=status=1 account sufficient /usr/lib/security/pam_mysql.so user=*db_username* passwd=*db_password* host=*db_server* db=*db_name* table=*table_name* usercolumn=*username_field_name* passwdcolumn=*password_field_name* crypt=0 where=status=1
其中 *xxxxx* 要填你自己的設定
crypt 的值: 0 代表不加密; 1 代表 password function; 2 代表 crypt function
where: 可有可無, 我是設定狀態 1 的才是 active 帳號
原本有的那幾行別刪掉 放在後面
這樣你原本 local 的 user 帳號才能夠正常運作
然後就是 vsftp.conf
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 chroot_local_user=NO chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list listen=YES listen_port=21 pasv_enable=YES pasv_min_port=65100 pasv_max_port=65120 virtual_use_local_privs=YES user_config_dir=/etc/vsftpd_user_conf
大多是基本設定
重點在這幾行
chroot_local_user=NO -> local user 不受目錄限制
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list -> virtual user 只能在他自己的目錄 (chroot)
user_config_dir=/etc/vsftpd_user_conf -> 針對每個 virtual user 的設定檔 (像是該 user 的根目錄等等)
打完 收工
Update:
發現一個比較簡單的設法
user_sub_token=$USER local_root=/path/to/chroot/dir/$USER
這樣就會自己認帳號對應路徑了
目前沒有相關的文章
Computer

Comments»
no comments yet - be the first?