[已解決][vsftpd] 虛擬用戶 user_config_dir 配置方法沒有工作

火星人 @ 2014-03-04 , reply:0
←手機掃碼閱讀

[已解決][vsftpd] 虛擬用戶 user_config_dir 配置方法沒有工作

想實現功能,虛擬用戶登陸,home目錄在不同的地方( 是chroot過的,不知道虛擬用戶可不可以不chroot?)。

home目錄不同現在有兩個方法:
1,user_sub_token和local_root, 測試成功,但是我想有些用戶的home更靈活,或者不想chroot即local_root想設置到/.
ex:
user_sub_token=$USER
local_root=/home/virtualftp/$USER
2,user_config_dir 參數,為每個用戶設置不同的home,但是實際中發現user_config_dir下對具體用戶的配置沒有讀取,比如home目錄到是virtualfttp的home目錄了。
ex:
#/etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd_user_conf

# ls -l /etc/vsftpd/vsftpd_user_conf/frank
-rw-r--r-- 1 root root 191 Nov  5 12:27 /etc/vsftpd/vsftpd_user_conf/frank
# cat /etc/vsftpd/vsftpd_user_conf/frank
local_root=/

frank登陸后home目錄被chroot到了/home/virtualftp/, 即virtualftp用戶的home目錄。

OS: CentOS 5.2
vsftpd DVD自帶版本 vsftpd-2.0.5-12.el5

只使用虛擬用戶,匿名和本地用戶都沒有開啟。
配置文件如下,pam就是網上大家寫的兩行。

# grep -v ^# /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
listen=YES

pam_service_name=vsftpd_vu
userlist_enable=YES
tcp_wrappers=YES

pasv_enable=YES
pasv_min_port=60000
pasv_max_port=60005

guest_enable=YES
guest_username=virtualftp

user_config_dir=/etc/vsftpd/vsftpd_user_conf

# grep -v ^# /etc/pam.d/vsftpd_vu
auth    required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

看過/var/log下的信息了,不是很有用,不知道vsftpd能不能更詳細的debug?我的問題不知道在哪裡了? 配置文件許可權應該OK。

問題解決:
嘗試把user_config_dir=/etc/vsftpd/vsftpd_user_conf改到其他地方都ok的,一開始以為=後面的目錄長度有限制,這樣vsftpd設計也太土了吧,試了長的目錄后發現也OK,然後仔細看了下配置文件,OMG,user_config_dir=/etc/vsftpd/vsftpd_user_conf最後面有個空格,因為空格不是很能直接看到,所以一直沒發現。
空格來源是拷貝了網上的配置文件,所以平時配置系統時最好先拷貝到可以顯示特殊字元的編輯器檢查下先(比如notepad++ :))。

[ 本帖最後由 可可火山 於 2008-11-7 12:23 編輯 ]
《解決方案》

我也遇到同樣的問題,但我這個沒有空格啊,而且不能登錄,支掉這個選項就可以登錄了。找了半天也沒發現是哪裡的問題。




[火星人 via ] [已解決][vsftpd] 虛擬用戶 user_config_dir 配置方法沒有工作已經有712次圍觀

http://www.coctec.com/docs/service/show-post-21767.html