Mon*_*lue 5 security linux ssh sftp apache-2.2
我目前正在 Linux 服务器上设置 apache,需要创建一个新用户,该用户可以登录并且只能编辑特定目录中的文件。
我目前将我的网站设置为
/数据/htdocs/我的网站/
对此的权限是 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
Run Code Online (Sandbox Code Playgroud)
交互式会话更加复杂,因为用户需要 shell 和一些设备文件。
从man 5 sshd_config
:
ChrootDirectory 必须包含支持用户会话所需的文件和目录。对于交互式会话,这至少需要一个 shell(通常为 sh(1))和基本 /dev 节点,例如 null(4)、zero(4)、stdin(4)、stdout(4)、stderr(4)、arandom (4) 和 tty(4) 设备
我不建议这样做,因为您需要在 chroot 中构建和维护所需的任何实用程序的副本。如果您仍然想尝试走这条路线,您可以阅读有关 sshd_config 手册页的更多信息,以及此处