我目前正在
Linux服务器上设置apache,需要创建一个新用户,该用户可以登录并只编辑特定目录中的文件.
我目前将我的网站设置为
/数据/ htdocs中/ mywebsite /
对此的权限是apache:apache
现在我需要做的是创建一个新用户“joeblogs”并限制该用户只访问/ data / htdocs / mywebsite / store /
用户应该能够SSH和SFTP,但始终直接指向此文件夹,用户也应该能够完全访问/ store /文件夹,但无法查看任何其他文件夹或文件.系统/
任何有关这方面的帮助将不胜感激我已经圈了几个小时.
解决方法
SSH具有chroot内置用户的能力(自4.9p1起),但将其用于交互式会话有点困难.
限制sftp虽然相当容易,但可以基于每个用户或每个组进行配置
Match User joeblogs ChrootDirectory /data/htdocs/mywebsite/store/ ForceCommand internal-sftp AllowTcpForwarding no
交互式会话更复杂,因为用户需要shell,并且存在一些设备文件.
来自man 5 sshd_config:
The ChrootDirectory must contain the
necessary files and directories to
support the user’s session. For an
interactive session this requires at
least a shell,typically sh(1),and
basic /dev nodes such as null(4),
zero(4),stdin(4),stdout(4),
stderr(4),arandom(4) and tty(4)
devices
我不建议这样做,因为您需要在他们的chroot中构建和维护他们需要的任何实用程序的副本.如果您仍想尝试使用此路由,可以在sshd_config手册页和here中阅读更多相关信息