如何允許使用者僅訪問我的 Ubuntu 伺服器上的特定文件夾子集?
我需要自由職業者能夠在我的 Ubuntu 伺服器上下載和上傳文件到我的一些網站,但不是全部。
我如何設置它,以便每個自由職業者都是只能訪問他們應該能夠訪問的網站而沒有其他權限的使用者?
我按照我找到的說明設置了通過 bind 訪問特定文件夾的 ftp 使用者。我已將我的 ftp 使用者添加到對這些文件夾具有讀、寫訪問權限的組中,所以從這個角度來看,一切似乎都很好——我的使用者可以做他們需要做的事情。但是我的 ftp 使用者能夠導航到我伺服器上的所有文件夾,這一點都不好。我如何確保它們僅限於 /home/thisuser 文件夾,僅此而已。
我無法評論您的問題,因為我還沒有足夠的聲譽,但是您使用 FTP 而不是 SFTP 有什麼原因嗎?FTP 將明文發送密碼,這是一件非常糟糕的事情。SFTP 將加密您在客戶端和伺服器之間的交換。
設置 SFTP chroot 需要幾個步驟。這些說明假設您安裝了 ssh 伺服器。
- 在 /etc/ssh/sshd_config 替換該行
Subsystem sftp /usr/lib/openssh/sftp-server
有了這個:
Subsystem sftp internal-sftp
在此行之後,添加以下部分:
匹配組 sftponly
> > ChrootDirectory /home/%u
> > X11Forwarding no
> > AllowTcpForwarding no
> > ForceCommand internal-sftp > > >ChrootDirectory /home/%u 將強制使用者的主目錄為根目錄。 2. 創建一個 sftponly 組:
sudo groupadd sftponly
3. 將所有自由職業者添加到 sftponly 組並更改使用者的主目錄:
sudo usermod -g sftponly -d / johnnyfreelancer
‘sftponly’ 必須是使用者的主要組(這是 -g 標誌所做的),否則此方法將不起作用。-d 標誌也是必要的,因為一旦使用者登錄 /home/%u 將有效地成為登錄使用者的最頂層目錄。