当前位置: > Linux服务器 > ftp >

CentOS7 下使用sftp客户端上传文件到特定文件夹,外层其他文件夹不可访问,不可远程ssh登录

时间:2017-06-10 12:10来源:linux.it.net.cn 作者:IT
CentOS7 下使用sftp客户端上传文件到特定文件夹,外层其他文件夹不可访问,不可远程ssh登录


摘要: 用户锁定到特定目录下,并且上传文件的默认权限是都可以访问

使用sftp客户端上传文件到特定文件夹,外层其他文件夹不可访问,不可远程ssh登录。 

1.创建用来登录sftp的用户和用户组 


# groupadd sftp 


# useradd -d /sftp/usftp -G sftp usftp 


# passwd usftp 


2.新建一个ftp上传文件保存的根目录 


# mkdir /sftp 


3.确保 /sftp 文件夹的属主和属组都是root,并且权限都是755 


修改属主和属组 
# chown root:root /sftp 


修改权限 
# chmod 755 /sftp 


目录权限设置上要遵循2点: 
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root; 
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,权限最大设置只能是755。 


4.限制用户通过sftp登录进来时只能进入主目录,修改/etc/ssh/sshd_config文件 


# vim /etc/ssh/sshd_config 


然后修改其下边的相关代码,修改好的代码如下: 


# override default of no subsystems 
#Subsystem      sftp    /usr/libexec/openssh/sftp-serve 
Subsystem       sftp    internal-sftp 


Match Group sftp 
        ChrootDirectory /sftp/ 
        X11Forwarding no 
        AllowTcpForwarding no 
        PermitTTY no 
        ForceCommand internal-sftp 


保存退出 
:wq 




5.修改客户端上传文件时,创建文件夹及文件的默认权限 


修改 /etc/pam.d/sshd 文件,在最下边,添加如下代码: 


# Default umask mask for SSH/SFTP sessions 
session optional        pam_umask.so umask=0000 




6.重启sshd 
# systemctl restart sshd.service 


7.客户端链接,测试成功。 


 

(责任编辑:IT)
------分隔线----------------------------