歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

linux vsftp 虛擬用戶配置方法

虛擬用戶的特點是只能訪問服務器為其提供的FTP服務,而不能訪問系統的其它資源。所以,如果想讓用戶對FTP服務器站內具有寫權限,但又不允許訪問系統其它資源,可以使用虛擬用戶來提高系統的安全性。
在VSFTP中,認證這些虛擬用戶使用的是單獨的口令庫文件(pam_userdb),由可插入認證模塊(PAM)認證。使用這種方式更加安全,並且配置更加靈活。
下面介紹配置過程。
1.生成虛擬用戶口令庫文件。為了建立此口令庫文件,先要生成一個文本文件。該文件的格式如下,單數行為用戶名,偶數行為口令:
#viaccount.txt
ylg
1234
zhanghong
4321
gou
5678

2.生成口令庫文件,並修改其權限
#db_load-T-thash-f./account.txt/etc/vsftpd/account.db
#chmod600/etc/vsftpd/account.db

3.新建一個虛擬用戶的PAM文件。加上如下兩行內容
#vi/etc/pam.d/vsftp.vu
authrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/account
accountrequired/lib/security/pam_userdb.sodb=/etc/vsftpd/account

4.建立虛擬用戶,設置該用戶所要訪問的目錄,並設置虛擬用戶訪問的權限
#useradd-d/home/ftpsitevirtual_user
#chmod700/home/ftpsite

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

5.編輯/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=WelcomtomyFTPserver.
anon_world_readable_only=NO
guest_enable=YES
guest_username=virtual_user
pam_service_name=vsftp.vu

上面代碼中,guest_enable=YES表示啟用虛擬用戶;guest_username=virtual則是將虛擬用戶映射為本地用戶,這樣虛擬用戶登錄後才能進入本地用戶virtual的目錄/ftpsite;pam_service_name=vsftp.vu指定PAM的配置文件為vsftp.vu。

6.重新啟動VSFTP
#servicevsftpdrestart

7.以虛擬用戶gou(Linux中並無該賬號)進行測試
#ftp127.0.0.1
Connectedto127.0.0.1(127.0.0.1).
220WelcomtomyFTPserver.
Name(127.0.0.1:root):gou
331Pleasespecifythepassword.
Password:
230Loginsuccessful.Havefun.
RemotesystemtypeisUNIX.
Usingbinarymodetotransferfiles.

在虛擬FTP服務器中,也可以對各個用戶的權限進行設置。方法是在/etc/vsftpd.conf文件中添加如下一行:
user_config_dir=用戶配置文件目錄
然後在用戶配置文件目錄下創建相應的用戶配置文件,比如為上述名為gou的用戶創建一個配置文件(假設配置文件目錄為/etc/vsftpd_user_conf):
#vi/etc/vsftpd_user_conf/gou
write_enable=NO
anono_upload_enable=NO

8.虛擬用戶個人目錄設置
大家可以發現,無論是哪個虛擬用戶,登錄後所在的目錄都是/home/ftpsite,即都是guest用戶的自家目錄。下面,介紹如何為每個虛擬用戶建立自家目錄。
一種作法是在虛擬用戶的個人配置文件中使用local_root選項指定虛擬用戶的自家目錄。以gou為例,在第上步的基礎上,首先/etc/vsftpd_user_conf/gou文件中加入:
local_root=/home/ftpsite/gou
/home/ftpsite下新建gou目錄,並將權限設為virtual_user:

9.添加FTP用戶的步驟
1.在account.txt中添加用戶名和密碼
2.運行如下命令,將用戶名和密碼添加到數據庫中
db_load-T-thash-f./account.txt/etc/vsftpd/account.db
3.在/home/ftpsite中新建一個文件夾,與用戶明相同
4.在vsftpd_user_conf文件夾下新建和用戶名相同的文件,並在其中加入
local_root=/home/ftpsite/用戶名
Copyright © Linux教程網 All Rights Reserved