Mysql
ProFTPd、MySQL、虛擬使用者和權限
我想通過 MySQL 數據庫控制我的 ProFTPd 身份驗證。使用者將能夠在 PHP Web 應用程序中更改其 FTP 帳戶的使用者名和密碼。這就引發了一個問題:數據庫使用者表中設置的使用者與系統使用者不匹配。所以我無法更改文件系統中的目錄權限,ProFTPd 會記錄錯誤:
使用者名 chdir("/var/www/vhosts/sites/username"): 權限被拒絕
但是我怎樣才能讓這些 FTP 使用者訪問這些文件夾呢?如果我設置了一個名為
www-data
它的使用者,它可以正常工作,但使用者名不會在/etc/passwd
.我要管理的第二件事是這個唯一目錄的限制,在這種情況下是
/var/www/vhosts/sites/username
. 如果使用者不在上面的主目錄中,則使用者不能訪問其他目錄。我該如何解決?
您必須像對待真實使用者一樣授予您的 proftpd 虛擬使用者對其文件和目錄的所有權。你可以用chown做到這一點。由於使用者不是系統使用者,因此您必須使用數字 UID:GID 例如,如果使用者名是 UID 10001 和 GID 1111(來自 mysql 數據庫),那麼
chown 10001:1111 /var/www/vhosts/sites/username chown -R 10001:1111 /var/www/vhosts/sites/username
應該讓使用者名控制他們自己的文件。確保 www-data 使用者對文件和目錄具有適當的只讀訪問權限,例如將 world rx 授予目錄,將 r– 授予文件。
如果你設置
DefaultRoot ~
指令,那麼使用者將被限制在他們自己的目錄樹中。