在 sshd_config 文件中 sftp chroot 显示 sftp/%u?

在 sshd_config 文件中 sftp chroot 显示 sftp/%u?

请帮助理解此配置

# override default of no subsystems

Subsystem       sftp    internal-sftp


Match Group sftpusers
  ChrootDirectory /sftp/%u
  ForceCommand internal-sftp

答案1

man sshd_config

  • 子系统Subsystem sftp internal-sftp

    配置外部子系统(例如文件传输守护程序)。参数应为子系统名称和在子系统请求时执行的命令(带有可选参数)。

    命令 sftp-server(8) 实现“sftp”文件传输子系统。

  • 匹配Match Group sftpusers

    引入条件块。如果 Match 行上的所有条件都得到满足,则后续行上的关键字将覆盖配置文件全局部分中设置的关键字,直到出现另一个 Match 行或文件末尾。如果关键字出现在多个满足条件的 Match 块中,则仅应用该关键字的第一个实例。

    Match 的参数是一个或多个条件模式对,或匹配所有条件的单个标记 All。可用的条件是 User、Group、Host、LocalAddress、LocalPort 和 Address。匹配模式可以由单个条目或逗号分隔的列表组成,并且可以使用 ssh_config(5) 的 PATTERNS 部分中描述的通配符和否定运算符。

  • Chroot目录ChrootDirectory /sftp/%u

    指定在认证后 chroot(2) 到的目录的路径名。路径名的所有组件都必须是 root 拥有的目录,且任何其他用户或组都无法写入。chroot 后,sshd(8) 将工作目录更改为用户的主目录。

  • 部队指挥ForceCommand internal-sftp

    强制执行 ForceCommand 指定的命令,忽略客户端提供的任何命令(~/.ssh/rc如果存在)。使用带有-c选项的用户登录 shell 调用该命令。这适用于 shell、命令或子系统执行。它在 Match 块内最有用。客户端最初提供的命令在 SSH_ORIGINAL_COMMAND 环境变量中可用。指定“internal-sftp”命令将强制使用进程内 sftp 服务器,当与 ChrootDirectory 一起使用时,该服务器不需要支持文件。

更多信息这里

相关内容