如何使用 SFTP 不允许用户超出主目录

Jan*_*eks 4 linux sftp ubuntu

我正在运行 Ubuntu 10.04。我设置了用户的主目录,但是当他们通过 SFTP 连接时,我想将它们限制在他们的主目录及其子目录中。

换句话说:不允许他们走出去。

我该怎么做才能实现这一目标?

Dan*_*eck 9

FTP

Ubuntu 文档

保护 FTP

有一些选项/etc/vsftpd.conf可以帮助提高vsftpd 的安全性。例如,可以通过取消注释将用户限制在他们的主目录中:

chroot_local_user=YES
Run Code Online (Sandbox Code Playgroud)

您还可以将特定的用户列表限制在他们的主目录中:

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
Run Code Online (Sandbox Code Playgroud)

取消对上述选项的注释后,创建一个/etc/vsftpd.chroot_list包含每行一个用户列表的列表。然后重启vsftpd:

sudo /etc/init.d/vsftpd restart
Run Code Online (Sandbox Code Playgroud)

SFTP

编辑/etc/ssh/sshd_config

subsystem sftp internal-sftp必要时进行设置。

添加以下内容:

Match user theUserName
    ChrootDirectory %h
    ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)

通过运行保存并测试配置sshd -t。如果成功,请ssh稍后重新启动以应用更改。

根据您的确切设置,您指定的文件夹ChrootDirectory%h是用户的家)必须归其所有root,其他人没有写权限。所以它不完全是一个真正的主目录。