天天看點

ftpd學習-虛拟使用者配置

 對于用DB庫存儲使用者名及密碼的方式來說:

(1)檢視系統是否有相應軟體包

# rpm –qa | grep db4

db4-devel-4.2.52-7.1

db4-4.2.52-7.1

db4-utils-4.2.52-7.1

(2)建立一個logins.txt的檔案,單行為使用者名,雙行為密碼,例如

# vi /etc/vsftpd/logins.txt

guest

12345

(3)建立資料庫檔案并設定檔案屬性

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

# chmod 600 /etc/vsftpd/vsftpd_login.db

(4)建立認證檔案

# vi /etc/pam.d/vsftp 插入如下兩行

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

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

(5)建立虛拟使用者,設定該使用者所要通路的目錄,并設定虛拟使用者通路的權限:

#useradd -d /home/ftpsite virtual_user

#chmod 700 /home/ftpsite

 經過該步驟的設定,/home/ftpsite就是virtual_user使用者的主目錄,該使用者也是ftpsite目錄的擁有者。除root使用者之外,隻有該使用者具有對該目錄的讀、寫和執行的權限。

(6).編輯/etc/vsftpd/vsftpd.conf檔案,使其整個檔案内容如下所示(去掉了注釋内容):

anonymous_enable=NO

local_enable=YES

local_umask=022

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=YES

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

one_process_model=NO

chroot_local_user=YES

ftpd_banner=Welcom to my FTP server.

anon_world_readable_only=NO

guest_enable=YES

guest_username=virtual_user

pam_service_name=vsftp

  上面代碼中,guest_enable=YES表示啟用虛拟使用者;guest_username=virtual則是将虛拟使用者映射為本地使用者,這樣虛拟 使用者登入後才能進入本地使用者virtual的目錄/ftpsite;pam_service_name=vsftp指定PAM的配置檔案為 vsftp。

   (7).重新啟動VSFTP:

    #service vsftpd restart

    (8).以虛拟使用者guest(Linux中并無該賬号)進行測試:

# ftp 127.0.0.1

Connected to 127.0.0.1 (127.0.0.1).

220 Welcom to my FTP server.

Name (127.0.0.1:root): guest

331 Please specify the password.

Password:

230 Login successful. Have fun.

Remote system type is UNIX.

Using binary mode to transfer files.

 在虛拟FTP伺服器中,也可以對各個使用者的權限進行設定。方法是在/etc/vsftpd.conf檔案中添加如下一行:

    user_config_dir=使用者配置檔案目錄

    然後在使用者配置檔案目錄下建立相應的使用者配置檔案,比如為上述名為gou的使用者建立一個配置檔案(假設配置檔案目錄為/etc/vsftpd_user_conf):

#vi /etc/vsftpd_user_conf/guest

write_enable=NO

anono_upload_enable=NO

 列子:

#cmds_allowed=ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RNFR,RNTO,SIZE,STOR,TYPE,USER,REST,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,FEAT

file_open_mode=0444

#local_root=/home/ftpuser/$USER

local_root=/home/ftpsite

#write_enable=YES

  (9).虛拟使用者個人目錄設定

  大家可以發現,無論是哪個虛拟使用者,登入後所在的目錄都是/home/ftpsite,即都是guest使用者的自家目錄。下面,介紹如何為每個虛拟使用者建立自家目錄。

一種作法是在虛拟使用者的個人配置檔案中使用local_root選項指定虛拟使用者的自家目錄。以gou為例,在第上步的基礎上,首先/etc/vsftpd_user_conf/gust檔案中加入:

local_root=/home/ftpsite/guest

  /home/ftpsite下建立gou目錄,并将權限設為virtual_user:

 (10).添加FTP使用者的步驟

      1.在logins.txt中添加使用者名和密碼

      2.運作如下指令,将使用者名和密碼添加到資料庫中

   db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db

繼續閱讀