Linux中通过chroot为SFTP用户指定访问目录

搭建sftp服务器时,为了系统安全,一定要把这个用户锁定在其存储目录下,这时候,我就需要用到chroot了。

创建 SSH chroot

使用 mknod 命令创建 /dev 下的文件:

参数说明:

参数 说明
-m 指定文件权限位
c 字符文件
数字 分别是文件指向的主要号和次要号

设置根目录权限:

注意:根目录及根目录下非SFTP用户的文件(夹)的所有者必须为root用户,且对普通用户或用户组不可写

设置 SSH chroot 交互式 shell

创建bin目录并复制bash:

复制bash需要用到的共享库:

创建并配置 SSH 用户

配置用户:

禁止用户ssh登录(如果需要的话):

复制新的账号文件:

注意:每次向系统添加sftp用户时,都需要将新帐户文件复制到该目录。

修改 SSH 配置文件

编辑/etc/ssh/sshd_config,在尾部适当位置添加如下参数:

保存并退出,重启sshd:

配置用户环境

为sftp用户创建一个主目录并配置权限:

添加用户可以使用的命令:

检查以上命令的共享库并将它们移到 chroot 的库目录中:

强制用户sftp登录:

/etc/ssh/sshd_config用户Match位置添加如下参数:

测试 SSH chroot 是否成功

因为我禁止用户ssh登录,所以只能通过FTP软件登录来测试,登录后如果不能进入其他文件夹则表示设置成功。如果未禁止ssh登录,用户也无法跳出当前目录,而且只能执行 bash 以及它内置的命令,如pwd、history、echo等。

原创文章禁止转载:技术学堂 » Linux中通过chroot为SFTP用户指定访问目录

精彩评论

9+3=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏