赞
踩
sftp采用的是ssh加密隧道,安装性方面较ftp强,而且依赖的是系统自带的ssh服务,但速度较ftp慢。本次试验为虚拟机CentOS7.6系统。
我们要建立一个专门管理sftp的用户或者用户组,方便我们管理权限。 如果有多个sftp用户建议新建用户组,此次试验我只用一个用户,为了方便用用户名的方式去进行。
a、若建立单个sftp用户
新建用户
useradd qhlh
修改密码
passwd qhlh
b、若需要多个sftp用户
新建sftp的用户组:
groupadd sftp
新建多个用户:
useradd -g sftp -m sftpuser1
useradd -g sftp -m sftpuser2
修改用户密码
passwd sftpuser1
passwd sftpuser2
c、如果该用户已存在,但是不在sftp组中,可以手动移动用户到sftp组
usermod -g sftp qhlh
首先关闭SElinux
vim /etc/sysconfig/selinux
找到并修改这行为
SELINUX=disabled
tips:SELINUX默认是开启的,这样重启sshd会提示权限不够,设置为disabled需要重启生效
打开/etc/ssh/sshd_config文件
vi /etc/ssh/sshd_config
配置如下
Subsystem sftp internal-sftp
Match User qhlh #指定以下的子行配置是匹配用户的
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /data #设定属于用户组sftp的用户访问的根文件夹
ForceCommand internal-sftp #强制执行内部sftp,并忽略任何~/.ssh/rc文件中的命令
重启网络
service sshd resstart
3、修改sftp-users用户组用户目录权限
上面说了,因为使用了ChrootDirectory /data作为qhlh的sftp根目录,现在来修改权限
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755
a、由于/data是root创建的,权限755,如果qhlh直接sftp过去没有权限写入,因此,需要/data下创建新目录并给与qhlh权限
mkdir /data/file
chown qhlh:qhlh /data/file
找到其他服务器
sftp qhlh@10.0.32.21
看以看到用户不能直接在sftp的根目录(也就是服务器/data)下传文件,但可以在file下传文件(上面/data/file的属主已经改为了qhlh)
至此,试验完成
tip:有时会遇到修改了默认22端口为其他端口。此时测试需要注意防火墙是否放通端口或者关闭防火墙。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。