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

Linux 下 FTP 用戶與 Apache 權限衝突解決方案

編輯:Linux 教學

問題背景

使用 Kloxo 面板管理 VPS,FTP 上傳檔案後 PHP 程式執行產生檔案,導致 FTP 用戶無法刪除 Apache 建立的檔案,權限管理極度頭痛。

方案一:用戶組控制(簡單但不安全)

  1. 所有 FTP 虛擬用戶加入 apache 群組。
  2. 設定 umask 002,使群組擁有讀寫執行權限。
缺點:同群組用戶可互刪檔案,安全性低。

方案二:ACL 精細權限控制(推薦)

前提:掛載分區時加入 acl 選項,如 mount /dev/hda1 /home -o acl。

單用戶 ACL 設定

setfacl -m u:ftp:rwx /home/ftp/www           # 給 ftp 用戶完整權限
setfacl -d -m u:ftp:rwx /home/ftp/www        # 預設權限,新建檔案/目錄繼承

多用戶差異化權限

setfacl -m u:ftp:rwx /home/www
setfacl -m u:tmp:r-x /home/www
# ftp 讀寫執行,tmp 唯讀

設定 Mask 確保權限生效

setfacl -m m::rwx /home/www

實戰:虛擬主機同時支援 FTP 用戶與 Apache

假設虛擬主機用戶 vmuser,Apache 用戶 apache,網站根目錄 /home/vmuser/www:

setfacl -m u:vmuser:rwx /home/vmuser/www
setfacl -m u:apache:rwx /home/vmuser/www
setfacl -d -m u:vmuser:rwx /home/vmuser/www
setfacl -d -m u:apache:rwx /home/vmuser/www
setfacl -m m::rwx /home/vmuser/www
setfacl -d -m m::rwx /home/vmuser/www
限制:主要適用 ext2/ext3;xfs、jfs 等需修改核心支援。
Copyright © Windows教程網 All Rights Reserved