在root用户下:
输入:vi /etc/ssh/sshd_config
找到类似于Subsystem sftp /usr/libexec/openssh/sftp-server这行的代码,注释掉;
然后加上以下代码:
Subsystem sftp internal-sftp
#sftp是组名,也可是多个组名,用空格隔开就可以。
Match group sftp
#ftpboc是用户名,也可是多个用户,用空格隔开就可以。组别和用户可以同时使用,也可只用组或者用户。
#Match user ftpboc
#这行表示限制了sftp组下的每一个用户只有访问自己的主目录。为了能够chroot成功,该目录的所有上下级目录必须属主是root,并且其他用户或组不能写
ChrootDirectory %h
#以下几行是一些配置,具体是什么不要问我,因为我也不知道;谁要问我我打死谁。。。。。
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
保存退出此文件后。
重启sshd服务
输入: service sshd restart
新建组:
groupadd sftp
新建用户:
useradd -d /home/test -m -s /bin/false -g sftp test
新建用户后记得修改密码:
passwd test,然后输入两次密码即可
目录权限设置上要遵循2点:
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,权限最大设置只能是755。
该文件夹权限命令:
假如我的主目录在/home/test下,则
chmod 755 /home/test -R
ssh测试:
[root@localhost /]# ssh ftpboc@192.168.187.129
ftpboc@192.168.187.129's password:
Connection to 192.168.187.129 closed by remote host.
Connection to 192.168.187.129 closed.
ssh链接失败。
sftp测试:
[root@localhost /]# sftp ftpboc@192.168.187.129
Connecting to 192.168.187.129...
ftpboc@192.168.187.129's password:
sftp>
sftp测试成功
也可以使用Xmanager中的xftp窗口测试,但注意记得要选择sftp协议哦。
需要注意的有以下两点:
1.如果只限制了某组,那么用户必须属于这个组。
2.在新建用户的时候使用useradd -d /home/test -m -s /bin/false -g sftp test语句来新建用户,这句命令指定了用户的主目录是/home/test,加入组sftp,并使用-s /bin/false来修改关闭ssh登陆。
版权所有,未经允许不得转载。