① linux郵件服務,如何建立虛擬用戶訪問ftp
vsftpd配置虛擬用戶步驟:
tar vsftpd-2.0.6.tar.gz
修改 builddefs.h
#define VSF_BUILD_PAM
#define VSF_BUILD_SSL
#define VSF_BUILD_TCPWRAPPERS
make && make install
復制安裝目錄下的vsftpd.conf到/etc目錄
修改 /etc/vsftpd.conf
#------------------------------
ftpd_banner="welcome to Hanqinet FTP!"
listen=YES
listen_port=21
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
guest_enable=YES
#虛擬帳號對應的系統帳號,名稱為ftp
guest_username=ftp
#虛擬用戶的配置文件目錄,具體配置文件為用戶名同名的文件
user_config_dir=/etc/vsftpd/vsftpd_user_conf
#不允許用戶更改根目錄
#chroot_local_user=YES
#--------------注意
#tcp_wrappers=YES
#pasv_enable=YES
#使用pam驗證,對應與 /etc/pam.d/目錄下的文件名
pam_service_name=vsftpd.pam
max_clients=500
max_per_ip=10
idle_session_timeout=600
data_connection_timeout=120
connect_timeout=60
accept_timeout=60
#設置ftp使用的埠 和防火牆設置有關
pasv_min_port=30000
pasv_max_port=30999
#-----------------------------
安裝目錄下redhat目錄中的vsftpd.pam到/etc/pam.d/
刪除/etc/pam.d/vsftpd.pam中的內容,並插入兩行內容
#-----------------------------
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
#-----------------------------
創建虛擬用戶對應的系統帳號 ftp
groupadd ftp
useradd -d /var/ftp -g ftp ftp
chown root:root /var/ftp
#chmod og-w /var/ftp
創建虛擬用戶配置目錄
mkdir /etc/vsftpd/vsftpd_user_conf
在此目錄下生成對應用戶名的配置文件
例如:
允許上傳、下載、刪除
local_root=/var/www/html/ #對應目錄需要guest用戶有訪問許可權
anon_world_readable_only=NO
write_enable=YES #寫許可權
anon_upload_enable=YES #開啟虛擬用戶上傳許可權
anon_other_write_enable=YES #開啟虛擬用戶刪除許可權
anon_mkdir_write_enable=YES #開啟虛擬用戶寫入和創建許可權
anon_umask=022
下載、上傳,但不能刪除
local_root=/var/www/html/
anon_world_readable_only=NO
#寫許可權
write_enable=YES
#開啟虛擬用戶上傳許可權
anon_upload_enable=YES
#開啟虛擬用戶刪除許可權
anon_other_write_enable=NO
#開啟虛擬用戶寫入和創建許可權
anon_mkdir_write_enable=YES
#開啟虛擬用戶上傳後文件許可權,默認文件是700許可權,022後變為755許可權
anon_umask=022
只下載
local_root=/var/www/html/
anon_world_readable_only=NO
創建虛擬用戶資料庫/etc/vsftpd/vsftpd_login.db
先創建明文數據文件,格式如下
用戶名1
密碼1
用戶名2
密碼2
保存為 vsftp_login.txt
使用db_load生成登錄資料庫文件
db_load -T -t hash -f vsftp_login.txt /etc/vsftpd/vsftpd_login.db
如果系統沒有db_load文件,可在安裝盤的db4-utils-*.rpm中找到
問題,如何刪除虛擬用戶,修改虛擬用戶?
刪除vsftpd_login.db重新生成,對於大量ftp用戶可使用mysql。
啟動vsftpd
/usr/local/sbin/vsftpd /etc/vsftpd.conf &
啟動腳本也可以從rpm包中取得
/etc/rc.d/init.d/vsftpd
make /etc/vsftpd
ln -s /etc/vsftpd.conf /etc/vsftpd/vsftpd.conf
ln -s /usr/local/sbin/vsftpd /usr/sbin/vsftpd
在centos5.4上直接編譯vsftp出現錯誤,無法解決,後來乾脆用yum直接安裝了一個,然後採用系統虛擬用戶的方式,也很方便。
方法如下:
yum install vsftpd
安裝到 /etc/vsftpd/下,系統自動生成ftp用戶,作為匿名登錄用戶。
我的ftp需求,關閉匿名登錄,新增abc用,只允許登錄後下載,所以先創建abc用戶
adser -d /home/abc -g ftp -s /sbin/nologin abc
設置abc的ftp登錄密碼
passwd abc
配置vsftpd.conf,主要內容如下
anonymous_enable=NO
local_enable=YES
write_enable=NO
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO.
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
listen_address=192.168.1.1
listen_port=21
pasv_min_port=30000
pasv_max_port=30999
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
說明: /etc/vsftpd/chroot_list 需手工創建,然後將abc加入其中,確保abc登錄後目錄被鎖定在自己的home中。