建立一個使用者並授予他存取 Ubuntu 中特定網站的權限(Digitalocean+Serverpilot)

建立一個使用者並授予他存取 Ubuntu 中特定網站的權限(Digitalocean+Serverpilot)

我是程式設計的小新手,我想在這個論壇上尋求幫助,因為我已經在幾個地方搜尋過但找不到。

我在 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

相關內容