如何将主文件夹视为根文件夹?

如何将主文件夹视为根文件夹?

我创建的用户每个都有自己的主目录,正常。

目前我创建用户如下:

adduser -d / home / ftp / myUser myUser

我的用户需要连接到SFTP(打开我的vps上安装的ssh),并且我需要当我的用户在SFTP中连接时,我需要将主目录视为他的根文件夹

为什么 ?另一个应用程序正在连接到此 SFTP,并且如果不在其根目录中考虑该应用程序,则该应用程序无法发送或读取文件。

我怎样才能做到这一点?

答案1

添加或更改/etc/ssh/sshd_config以包含以下行

Subsystem sftp internal-sftp

Match Group sftpusers
        ChrootDirectory %h
        ForceCommand internal-sftp

然后将所有受限用户集添加到该sftpusers组中。

最后,将目标目录的所有权更改为root,并删除组/其他写入权限,然后重新启动服务器ssh。这是 chroot 生效所必需的。缺点是用户无法将任何文件写入其主目录。 (您必须创建子目录供它们写入。)

从用户的角度来看,这不是一个理想的情况,您可能会发现最好在文件系统中的其他位置创建一个目录供 SFTP 使用(例如,/home/sftp/$USER可以使用 )独立于其真实主目录进行锁定ChrootDirectory /home/sftp/%u

当您遇到问题时(您可能会在几次尝试解决问题的过程中遇到第一个问题),请记住阅读/var/log/auth.log以了解出了什么问题。

相关内容