如何限制SSH / SFTP用户到apache网站的子文件夹?

我目前在Linux服务器上设置Apache,需要创build一个新的用户,可以login,只能编辑特定目录中的文件。

我目前有我的网站设置为

/数据/ htdocs中/ mywebsite /

这个权限是apache:apache

现在我需要做的是创build一个新的用户“joeblogs”,并限制此用户只能访问/ data / htdocs / mywebsite / store /

用户应该可以SSH和SFTP,但总是直接导向到这个文件夹,用户也应该能够完全访问/存储/文件夹,但无法看到任何其他文件夹或文件系统/

任何帮助,将不胜感激,我一直在圈了几个小时。

SSH有能力使用内置的用户(从4.9p1开始),但是将其用于交互式会话有点困难。

限制sftp是相当容易的,可以在每个用户或每个组的基础上进行configuration

Match User joeblogs ChrootDirectory /data/htdocs/mywebsite/store/ ForceCommand internal-sftp AllowTcpForwarding no 

交互式会话比较复杂,因为用户需要一个shell,并且需要存在一些设备文件。

man 5 sshd_config

ChrootDirectory必须包含必要的文件和目录来支持用户的会话。 对于交互式会话,这需要至less一个通常为sh(1)的shell和诸如null(4),zero(4),stdin(4),stdout(4),stderr(4),arandom等基本/ dev节点(4)和tty(4)设备

我不会推荐这个,因为你需要在他们的chroot中构build和维护他们需要的任何实用程序的副本。 如果你仍然想尝试这个路线,你可以阅读更多关于它的sshd_config手册页, 在这里