Ubuntu FTP服務器用戶設置指南(基于vsftpd)
vsftpd(Very Secure FTP Daemon)是Ubuntu上最流行的FTP服務器軟件,以下是設置FTP用戶的詳細步驟:
首先更新系統軟件包列表并安裝vsftpd:
sudo apt update
sudo apt install vsftpd
編輯vsftpd的主配置文件/etc/vsftpd.conf
(使用nano或vim):
sudo nano /etc/vsftpd.conf
關鍵配置項說明(取消注釋或添加):
anonymous_enable=NO
:禁止匿名用戶登錄,提升安全性。local_enable=YES
:允許系統本地用戶登錄FTP。write_enable=YES
:允許用戶上傳、刪除文件(需配合目錄權限)。chroot_local_user=YES
:將用戶限制在自己的主目錄(防止訪問系統其他目錄)。allow_writeable_chroot=YES
:若啟用chroot_local_user
,必須添加此項,否則用戶無法寫入自己的主目錄。userlist_enable=YES
:啟用用戶列表控制(可選,用于指定允許/拒絕的用戶)。userlist_file=/etc/vsftpd.user_list
:用戶列表文件路徑(默認不存在,需手動創建)。userlist_deny=NO
:若為NO
,則user_list
中的用戶允許登錄;若為YES
,則拒絕。# 創建用戶(按提示設置密碼及其他信息,如全名、郵箱)
sudo adduser ftpuser
# 設置用戶密碼(若創建時未設置)
sudo passwd ftpuser
若需禁止用戶通過SSH登錄,可將用戶的Shell設為/sbin/nologin
:
sudo useradd -m -s /sbin/nologin ftpuser # -m創建家目錄,-s指定Shell
sudo passwd ftpuser
FTP用戶的主目錄需歸屬該用戶,且權限正確(確保vsftpd可訪問):
# 設置家目錄歸屬
sudo chown ftpuser:ftpuser /home/ftpuser
# 設置目錄權限(755允許用戶讀寫執行,其他用戶僅讀執行)
sudo chmod 755 /home/ftpuser
# 若需允許用戶上傳文件,需將家目錄設為可寫(775)
sudo chmod 775 /home/ftpuser
若需精確控制哪些用戶可以登錄FTP,需編輯/etc/vsftpd.user_list
:
# 創建或清空用戶列表文件
sudo nano /etc/vsftpd.user_list
# 添加允許登錄的用戶名(每行一個)
ftpuser
anotheruser
注意:需配合userlist_enable=YES
和userlist_deny=NO
(允許列表中的用戶登錄)。
配置完成后,重啟服務使更改生效:
sudo systemctl restart vsftpd
# 設置開機自啟(可選)
sudo systemctl enable vsftpd
若服務器啟用了UFW防火墻,需開放FTP端口(默認21)及被動模式端口范圍(如50000-50010):
# 開放FTP控制端口(21)
sudo ufw allow 21/tcp
# 開放被動模式端口范圍
sudo ufw allow 50000:50010/tcp
# 重新加載防火墻規則
sudo ufw reload
使用FTP客戶端(如FileZilla)連接服務器:
ftpuser
)連接后,嘗試上傳、下載文件,驗證權限是否正常。
若需加密FTP傳輸,可配置vsftpd使用SSL/TLS:
# 安裝vsftpd SSL模塊
sudo apt install vsftpd-ssl
# 編輯配置文件,啟用SSL
sudo nano /etc/vsftpd.conf
# 添加以下配置
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
# 生成SSL證書(有效期365天)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
# 重啟vsftpd
sudo systemctl restart vsftpd
通過以上步驟,即可在Ubuntu上成功設置FTP服務器用戶,并根據需求調整權限和安全性。