当前位置: 首页 > Linux

SuSEsftp限制用户的活动目录

时间:2023-04-07 00:11:37 Linux

要求:使用sftp代替vsftpd,要求用户无权限登录操作系统,只能在指定目录上传下载。使用sftp的chrootdirectory功能。注释掉原来的Subsystem行并添加以下三行。subsystem指定了sftp的处理方式。match用于在sshd_config中指定条件,后面可以跟group或者ip,也可以三者全有,或者两者同时。需要注意的是,match匹配到的用户受match后的语句影响,直到结束文件或下一个匹配项。ChrootDirectory是指定匹配用户登录的目录。你也可以在这里添加%u和%h来引用子系统用户名和家名。#vim/etc/ssh/sshd_config#Subsystemsftp/usr/lib64/ssh/sftp-serverSubsystemsftpinternal-sftpMatchUserxxChrootDirectory/chroot#rcsshdrestart#useraddxx&&echo“a”|passwd–stdinxx目录权限设置要遵循两点:目录权限设置通过ChrootDirectory及其所有上层文件夹的权限,所有者和组必须是root;ChrootDirectory设置的目录权限及其所有上层文件夹权限,只有拥有者才能有写权限,也就是说最大权限设置只能是755。由于上面设置了目录的权限为755,所有非root用户不能在目录中写入文件。我们需要在ChrootDirectory指定的目录下创建一个子目录,并重新设置所有者和权限。#mkdir/chroot#chmod755/chroot#mkdir–p/chroot/xx#chownxx.users/chroot/xx测试如下:用户xx的shell是/bin/bash,理论上是可以的登录操作系统,为什么?提示/bin/bash:Nosuchfileordirectory后关闭连接怎么办?因为前面的Match语句已经限制了xx用户只能在/chroot目录下活动,所以xx通过ssh登录系统后会搜索/bin/bash,即/chroot/bin/bash。该目录不存在,无法登录。