首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

CentOS vsftpd 完整安裝與配置教學:解決本地用戶無法登入問題

     編輯:程式設計綜合問答

環境準備

yum install -y vsftpd ftp
systemctl enable vsftpd
systemctl start vsftpd

核心配置檔 /etc/vsftpd/vsftpd.conf

# 基本設定
anonymous_enable=NO          # 禁止匿名登入
local_enable=YES             # 允許本地用戶
write_enable=YES             # 允許寫入
local_umask=022              # 預設權限掩碼

# 目錄限制(安全關鍵)
chroot_local_user=YES        # 限制用戶在家目錄
allow_writeable_chroot=YES   # 允許家目錄可寫(若需上傳)

# 被動模式(防火牆/NAT 環境必須)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100
pasv_address=你的公網IP或域名

# 日誌
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
log_ftp_protocol=YES

建立 FTP 專用用戶

useradd -m -d /home/ftpuser -s /sbin/nologin ftpuser
passwd ftpuser  # 設定密碼
# 若需限制僅 FTP 登入,shell 設為 /sbin/nologin

防火牆與 SELinux

# firewalld
firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=40000-40100/tcp
firewall-cmd --reload

# SELinux
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on

常見問題排查

驗證測試

ftp localhost
# 或使用 FileZilla 客戶端測試主動/被動模式

總結

關鍵在於 chroot_local_user=YES 配合 allow_writeable_chroot=YES、正確設定被動模式埠範圍並開放防火牆、SELinux 布林值開啟。參考 完整圖文教學 可逐步完成部署。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
現象可能原因解決
530 Login incorrect密碼錯誤/用戶被鎖定檢查 /etc/passwd、/etc/shadow、pam 設定
500 OOPS: cannot change directorychroot 目錄權限/擁有者錯誤家目錄擁有者為用戶,權限 755,不可被群組/其他寫入
連線逾時被動模式埠未開放防火牆開放 pasv_min/max 埠