我想向用户授予tom
目录的SFTP 访问权限/var/www/html/my_project/
。虽然我不想授予对目录的任何 SFTP 访问权限/var/www/html/
。
目前由 apache 用户拥有/var/www/html/my_project/
。/var/www/html/
我只需要授予 /var/www/html/my_project/
用户 tom 和 apache 目录的访问权限。
一旦获得访问权限,tom 就可以访问 /var/www/html/my_project/ 下的所有目录。
请帮助我,我已经挣扎了很长时间了。
答案1
/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
,并让 Tom 位于 apache 组中。如果 apache 作为 apache:apache (user:group) 运行,则以下内容应该适用:
从http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/
# usermod -a -G apache tom
使整个my_project
目录由 usertom
和 group拥有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
到组中apache
,但没有使其成为apache
默认组。这意味着 apache 服务器将无法访问新文件。要解决这个问题,请设置apache
betom
的默认 group by useradd -g apache tom
。
答案2
您可以通过/var/www/html/my_project/
正确配置 SFTP 服务器来 chroot 用户 tom。来自 apache 的访问将被允许,并且 Tom 无法进入其 chroot 目录。
为了给您提供更多帮助,您需要说明您正在使用的 SFTP 服务器。