我是程式設計的小新手,我想在這個論壇上尋求幫助,因為我已經在幾個地方搜尋過但找不到。
我在 Digitalocean 上有一個安裝了 serverpilot 的 Ubuntu 伺服器。我在那裡創建的唯一用戶是“serverpilot”,但是一名程式設計師要求訪問我在此伺服器上安裝的網站。在那裡,他將編寫一個模板並對資料庫進行一些修改,由於我不想讓“serverpilot”用戶登錄,所以我要求他花一些時間創建一個特定的 FTP 用戶,以便他可以訪問該網站(其資料夾和子文件夾)。我一直在研究如何做到這一點,我已經測試了一些教程,但我仍然陷入困境。
我成功安裝了 vsftpd,然後我就開始蜷縮起來。
我希望這個新的 ftp 用戶只能訪問目錄“/srv/users/serverpilot/apps/cronegame2/public”中的特定站點,這樣他就可以訪問其資料夾、子資料夾、資料庫並能夠修改它們,僅此而已。且他只能透過21連接埠登錄,因此無法存取ROOT。
請幫助我實現這一目標。
答案1
若要讓 FTP 使用者對特定網站目錄具有有限存取權限,您可以依照下列步驟操作:
建立用於 FTP 存取的新使用者:
sudo adduser ftpuser
為新用戶設定密碼。
建立一個新群組以進行 FTP 存取:
sudo groupadd ftpaccess
將 FTP 使用者新增至新群組:
sudo usermod -aG ftpaccess ftpuser
將網站目錄的所有權變更為新群組:
sudo chown -R serverpilot:ftpaccess /srv/users/serverpilot/apps/cronegame2/public
更改網站目錄的權限以允許新群組讀取、寫入和執行:
sudo chmod -R g+rwx /srv/users/serverpilot/apps/cronegame2/public
配置 vsftpd 僅允許存取特定目錄並限制對根目錄的存取:
編輯該/etc/vsftpd.conf
文件並在末尾添加以下行:
# Allow access only to the specific directory
chroot_local_user=YES
local_root=/srv/users/serverpilot/apps/cronegame2/public
# Restrict access to the root directory
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.allowed_users
最後建立 /etc/vsftpd.allowed_users 檔案並在其中加入 FTP 使用者:
sudo sh -c "echo 'ftpuser' >> /etc/vsftpd.allowed_users