Linux-ftp虛擬用戶配置


雲服務器ESC 部署vsftpd 虛擬用戶

說明:雲服務器部署和本地服務器部署一樣,都需要開通指定的相應端口,只不過雲服務器需要在安全組規則中打開相應的端口允許通過。

環境說明:

對應的用戶對應不同的密碼,對應不同的數據目錄,如下圖:

具體步驟

 1) 安裝軟件

# yum -y install vsftpd

2) 創建相應的ftp數據目錄

# mkdir -p /opt/ftp/{come,out}

3) 創建一個用戶提供給虛擬用戶使用

# useradd -s /sbin/nologin virtual

4) 將ftp數據目錄設置成virtual用戶

# chown virtual. /opt/ftp/ -R
# ll /opt/ftp/
total 8
drwxr-xr-x 2 virtual virtual 4096 Apr 17 12:07 come
drwxr-xr-x 2 virtual virtual 4096 Apr 17 12:07 out

5) 創建虛擬帳號與密碼的文本文件(一行賬號,一行密碼, 注意不要有多余的空格)

# vim /etc/vsftpd/logins.txt
ftpComeSsbq
ftp_come_#@UkieO9
ftpOutSsbq
ftp_out_#@45oUkie

6) 將創建好的密碼文件txt格式轉換db格式

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

7) 定義db文件的權限

# chmod 600 /etc/vsftpd/login.db

8) 定義pam認證文件(注意:db=/etc/vsftpd/login 文件就是上面生成的login.db文件;省略后綴.db)

# vim /etc/pam.d/ftp
auth  required  /lib64/security/pam_userdb.so  db=/etc/vsftpd/login
account  required  /lib64/security/pam_userdb.so  db=/etc/vsftpd/login

9) 配置vsftpd主配置文件 (guest_username=virtual 對應上面創建的用戶)

# vim /etc/vsftpd/vsftpd.conf
#禁止匿名登錄FTP服務器
anonymous_enable=NO
#允許本地用戶登錄FTP服務器
local_enable=YES
#可以上傳(全局控制) 
write_enable=NO
#匿名用戶可以上傳
anon_upload_enable=NO
#匿名用戶可以建目錄
anon_mkdir_write_enable=NO
#匿名用戶修改刪除
anon_other_write_enable=NO
#全部用戶被限制在主目錄
chroot_local_user=YES

#2.3.5版本之后,如果用戶被限定在了其主目錄下,則該用戶的主目錄不能再具有寫權限了,需新增加下面這條配置
#allow_writeable_chroot=YES

#將所有用戶看成虛擬用戶guest
guest_enable=YES
#指定虛擬用戶,也就是將guest用戶映射到virtual用戶
guest_username=virtual
#指定為獨立服務
listen=YES
#指定監聽的端口
listen_port=21
#開啟被動模式
pasv_enable=YES
#FTP服務器公網IP
pasv_address=<FTP服務器公網IP>
#設置被動模式下,建立數據傳輸可使用port范圍的最小值
pasv_min_port=10000
#設置被動模式下,建立數據傳輸可使用port范圍的最大值
pasv_max_port=10088
#是否允許匿名用戶下載全局可讀的文件
anon_world_readable_only=NO
#指定虛擬用戶配置文件的路徑
user_config_dir=/etc/vsftpd/user_conf

10) 創建上面配置文件中指定的子配置文件目錄 user_conf

# mkdir /etc/vsftpd/user_conf

11) 定義 ftpComeSsbq 用戶的配置文件(注意:這里創建配置用戶配置文件的文件名必須與上面創建的用戶名一致)

# vim /etc/vsftpd/user_conf/ftpComeSsbq
write_enable=YES
anon_world_readable_only=no
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022 local_root
=/opt/ftp/come

12) 定義 ftpOutSsbq 用戶的配置文件

# vim /etc/vsftpd/user_conf/ftpOutSsbq
write_enable=YES
anon_world_readable_only=no
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022 local_root
=/opt/ftp/out

13) 啟動vsftpd

# service vsftpd start

14) 測試

  • 使用 lftp 測試,格式為:lftp 用戶名:密碼@ftp地址:傳送端口(默認21端口,如果是21端口則可以不用添加)
    [root@srt_aliyun_39 ~]# lftp ftpComeSsbq:ftp_come_#@UkieO9@120.79.xx.xx
    lftp ftpComeSsbq@120.79.xx.xx:~> pwd
    ftp://ftpComeSsbq:ftp_come_#%40UkieO9@120.79.xx.xx
    lftp ftpComeSsbq@120.79.xx.xx:~> mkdir test
    mkdir ok, `test' created            
    lftp ftpComeSsbq@120.79.xx.xx:/> ls
    drwx------    2 506      506          4096 Apr 17 05:32 test
    lftp ftpComeSsbq@120.79.xx.xx:/> rm -rf test/
    rm ok, `test/' removed 
  • 使用 windows 文件夾測試 格式:ftp:ftp地址 (說明:打開ftp被動模式,控制面板 > 網絡和Internet > Internet 選項 > 高級 。勾選 啟用 FTP 文件夾視圖,勾選 使用被動 FTP。

  

  • 瀏覽器測試:ftp://ftp地址

  

至此就完成了 ftp 虛擬用戶的部署。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM