1. 程式人生 > >搭建vsftpd(本地使用者和虛擬使用者可以同時存在)

搭建vsftpd(本地使用者和虛擬使用者可以同時存在)

1關閉iptables,selinux

2安裝vsftpd

# yum install vsftpd -y

3建立虛擬使用者檔案

[[email protected] ~]

# vim /etc/vsftpd/vusers.txt 

one

redhat

two

redhat

three

4使用db_load工具生成資料庫.db檔案(db_load工具由db4-utils包提供)

# db_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vusers.db

# chmod 700 /etc/vsftpd/vusers.*

5生成pam認證檔案並修改虛擬使用者路徑

1)只能使用虛擬使用者

#cp/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vusers.pam

auth required /lib/security/pam_userdb.so    db=/etc/vsftpd/vusers(不能寫vusers.db否則不識別)

account required /lib/security/pam_userdb.so  db=/etc/vsftpd/vusers

2)使用虛擬使用者或者本地使用者

cp /etc/pam.d/vsftpd /etc/pam.d/vusers.pam

#%PAM-1.0

auth sufficient /lib/security/pam_userdb.so    db=/etc/vsftpd/vusers

account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vusers

session    optional     pam_keyinit.so    force revoke

auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

auth       required     pam_shells.so

auth       include      password-auth

account    include      password-auth

session    required     pam_loginuid.so

session    include      password-auth

6建立虛擬使用者對映的本地系統使用者virtual並修改其許可權

# useradd -s /sbin/nologin virtual

# ls -ldh /home/virtual/

drwx------. 4 virtual virtual 1.0K 4月   2 17:04 /home/virtual/

[[email protected] ~]

# chmod 755 /home/virtual/

7修改vsftpd主配置檔案

local_enable=YES              //啟用本地使用者即啟用虛擬使用者對映的系統使用者virtual

guest_enable=yes            //啟用虛擬使用者

guest_username=virtual    //指定虛擬使用者對應的系統使用者

pam_service_name=vusers.pam  //指定pam認證檔案

8為不同的虛擬使用者建立獨立的配置檔案

1)建立存放配置檔案的資料夾並寫入vsftpd主配置檔案

# vim /etc/vsftpd/vsftpd.conf 

user_config_dir=/etc/vsftpd/vusers_dir

# mkdir /etc/vsftpd/vusers_dir

2)建立one使用者的配置檔案並設定許可權

[[email protected] /etc/vsftpd/vusers_dir]

# vim one

anon_upload_enable=yes

anon_other_write_enable=yes

anon_mkdir_write_enable=yes

anon_umask=022

[[email protected] /home/virtual]

3)one使用者建立宿主目錄並修改許可權

# mkdir /home/virtual/one

[[email protected] /home/virtual]

# chown virtual /home/virtual/one/

4)建立two使用者的配置檔案

# touch two

9啟動vsftpd服務

# /etc/init.d/vsftpd start

為 vsftpd 啟動 vsftpd:                                    [確定]

10測試