linux中创建sftp
前言:每次创建sftp的时候总是查一堆文档,不是有的步骤不对,就是缺失步骤,索性自己写一份以供后续方便使用。
一、添加用户组sftp
–> groupadd sftp
●查看用户组是否创建成功 –> cat /etc/group
二、创建用户:创建用户sftp_user到用户组sftp
–> useradd -g sftp -s /bin/false sftp_user
●查看用户是否创建成功 –> cat /etc/passwd
三、修改密码
–> passwd sftp_user
四、创建文件夹作为用户sftp_user的根目录
–> mkdir -p /data/sftp
将文件夹设置为用户sftp_user的根目录
–> usermod -d /data/sftp sftp_user
●查看全部用户信息 –> cat /etc/passwd
五、修改sshd_config配置
–> vim /etc/ssh/sshd_config
●注释此行
#Subsystem sftp /usr/libexec/openssh/sftp-server
●同时添加以下内容:
Subsystem sftp internal-sftp #指定使用sftp服务使用系统自带的internal-sftp
Match user sftp_user #匹配用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory /data/sftp #设定属于用户组sftp的用户访问的根文件夹如设置
X11Forwarding no #这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
AllowTcpForwarding no
六、文件用户/用户组权限
●方法一:文件赋予用户或者用户组的权限
–> chown -R sftp_user:sftp /data/sftp (只能sftp用户用)
或者 chown -R root:sftp /data/sftp (root和sftp都可)
●方法二:关闭Selinux策略
–> vim /etc/selinux/config
修改SELINUX=disabled,否则重启sshd会提示权限不够。
七、文件读取删除权限
–> chmod -R 777 /data/sftp 如果嫌权限过大可以换成755
八、重启ssh服务
–> systemctl restart sshd 或systemctl restart sshd.service
九、查看服务是否启动
–> systemctl status sshd.service
十、连接验证
注:后续连接成功后看到的目录 以及文件操作权限范围 在之前设置的/data/sftp目录下,以防找不到传输文件,特此注释。