Files

如何僅授予 sftp 對子目錄的訪問權限而不授予父目錄

  • February 18, 2017

我想向使用者授予tom目錄的SFTP 訪問權限/var/www/html/my_project/。雖然我不想讓任何 SFTP 訪問 directory /var/www/html/

目前由 apache 使用者擁有。我只需要 為使用者 tom 和 apache 授予對目錄的/var/www/html/my_project/訪問權限。/var/www/html/``/var/www/html/my_project/

一旦獲得訪問權限,tom 就可以訪問 /var/www/html/my_project/ 下的所有目錄。

請幫助我,我很長時間以來一直在掙扎。

我在我的文件中使用如下內容/etc/ssh/sshd_config

Match User tom
ChrootDirectory /var/www/html/my_project/
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp

然後,確保 tom 有權訪問該目錄。這可能很棘手,因為tom對預期目錄之上的所有目錄至少需要“x”(執行)權限。在大多數 Linux/Unix 版本中,每個人通常都可以訪問 /var/www/html/。

我可能會將my_project目錄設置為tom,並在 apache 組中擁有 tom 。如果 apache 以 apache:apache (user:group) 身份執行,則以下內容應該適用:

來自http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/

# usermod -a -G apache tom

使整個my_project目錄歸使用者tom和組所有apache

# chown -R tom:apache /var/www/html/my_project/

使整個my_project目錄對組完全可寫tom,並且對組可讀/可執行apache

# chmod -R 750 /var/www/html/my_project/

注意:tom創建的任何文件都歸 tom 的使用者和他的預設組所有。上面的範例添加tom到 group apache,但沒有成為apache他的預設組。這意味著 apache 伺服器將無法訪問新文件。要解決這個問題,請將apachebe 設為tom預設分組useradd -g apache tom

引用自:https://unix.stackexchange.com/questions/154560