如何僅授予 sftp 對子目錄的訪問權限而不授予父目錄
我想向使用者授予
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
到 groupapache
,但沒有成為apache
他的預設組。這意味著 apache 伺服器將無法訪問新文件。要解決這個問題,請將apache
be 設為tom
預設分組useradd -g apache tom
。