Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

vsftpd 虛擬用戶完整部署指南:PAM 驗證、獨立家目錄與差異化權限控制

編輯:Linux 教學

vsftpd 虛擬用戶不佔用系統帳號,透過 Berkeley DB + PAM 驗證,配合 guest_enable 映射至單一系統用戶,再以 user_config_dir 實現每位虛擬用戶獨立權限(唯讀/上傳/建目錄/刪改)。本文提供從建立帳號密碼資料庫、PAM 設定、vsftpd.conf 核心參數、權限模板建立到測試驗證的完整標準化部署流程。

1. 建立虛擬帳號密碼資料庫


# 1. 編輯明文帳密檔 (奇數行用戶名, 偶數行密碼)
vi logins.txt
user1
pass1
user2
pass2

# 2. 轉換為 Berkeley DB hash 格式 (需安裝 db4-utils)
db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db

# 3. 驗證檔案類型與權限
file /etc/vsftpd/vsftpd_login.db
chmod 600 /etc/vsftpd/vsftpd_login.db

2. 設定 PAM 驗證檔


vi /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required pam_userdb.so db=/etc/vsftpd/vsftpd_login

3. 建立映射系統用戶與家目錄


useradd -d /home/ftpsite -s /sbin/nologin virtual
chmod 700 /home/ftpsite

4. 修改 vsftpd.conf 核心參數


vi /etc/vsftpd/vsftpd.conf
# 虛擬用戶啟用
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu

# 虛擬用戶個別設定目錄
user_config_dir=/etc/vsftpd_user_conf

5. 建立差異化權限模板


mkdir /etc/vsftpd_user_conf

# user1: 唯讀瀏覽
vi /etc/vsftpd_user_conf/user1
anon_world_readable_only=YES

# user2: 完整讀寫 (上傳/建目錄/刪改/重命名)
vi /etc/vsftpd_user_conf/user2
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

6. 重啟服務並驗證


service vsftpd restart
# 使用 ftp client 或命令列測試
ftp localhost
# 輸入 user1/pass1 → 應只能下載瀏覽
# 輸入 user2/pass2 → 應可上傳、mkdir、rename、delete

關鍵參數對照表

參數說明
anon_world_readable_only=YES僅允許下載/列表,禁止任何寫入
anon_upload_enable=YES允許上傳檔案
anon_mkdir_write_enable=YES允許建立目錄
anon_other_write_enable=YES允許刪除/重命名/更改權限

虛擬用戶架構讓 FTP 服務更輕量、安全、彈性,是多用戶共享伺服器的最佳實踐。

Copyright © Windows教程網 All Rights Reserved