创建sftp用户且禁止其用ssh登录_GIS数据共享

创建sftp用户且禁止其用ssh登录

2023-02-28 15:29:51  浏览:2985  作者:管理员
0. 我们需要创建一个用户组,专门用于sftp用户,每台Linux服务器建立一次sftp 用户组即可。 groupadd sftpusers 1、在用户组sftpusers 下创建用户 sftp1,并禁止ssh登...

0. 我们需要创建一个用户组,专门用于sftp用户,每台Linux服务器建立一次sftp 用户组即可。

   groupadd sftpusers 

1、在用户组sftpusers 下创建用户 sftp1,并禁止ssh登录,不创建家目录

       useradd -s /sbin/nologin -G sftpusers -M sftp1

 2、设置用户密码

       passwd sftp1

       xxxxxxx

 3、创建sftp根目录,所有sftp用户都将在该目录下活动,首次创建即可

mkdir /data/data/sftpusers

4、设置目录权限,目录的权限设定有两个要点: 

      目录开始一直往上到系统根目录为止的目录拥有者都只能是root 

      目录开始一直往上到系统根目录为止都不可以具有群组写入权限

      chown root:root /data/data/sftpusers

      chmod 755 /data/data/sftpusers

      注意:/data 的权限也应该是755权限

      chmod 755 /data

      

5、设置sftpusers的用户目录权限

mkdir /data/data/sftpusers/sftp1

chown root:sftp1 /data/data/sftpusers/sftp1

chmod 755 /data/data/sftpusers/sftp1

6、配置sshd_config

        vi /etc/ssh/sshd_config

7、修改如下内容,并保存退出,首次修改即可

        #注释掉这行 

        #Subsystem sftp /usr/libexec/openssh/sftp-server 

        添加这行:

        Subsystem sftp internal-sftp  #指定使用sftp服务使用系统自带的internal-sftp,如果不添加,用户无法通过sftp登录。 

        #添加在配置文件末尾

        Match Group sftpusers 属于用户组 sftpusers 都能访问自己的目录,多个组之间用逗号分割 

        ChrootDirectory /data/data/sftpusers/%u  #用chroot将指定用户的根目录

        #这里的%u指的是账号名,/data/data/sftpusers/%u 含义是:/data/data/sftpusers/sftp1

        ForceCommand internal-sftp #指定sftp命令

        X11Forwarding no #这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉

        AllowTcpForwarding no

  8、赋予用户上传文件的权限

  在/data/data/sftpusers/sftp1目录下新建一个data/目录

  在ChrootDirectory 根目录下创建子目录data,将data的owner设置为sftpusers ,这样sftpusers用户就可以上传数据到data中了

       chown sftp1:sftpusers-R data/

  9、重启:systemctl restart sshd.service

  查看状态:systemctl status sshd.service

   测试:lftp -p22 -u sftp1,xxxxxxx sftp://192.168.xx.xx

  10、若要再创建第二个sftp用户,则需要重复1、2、5、8、9


扫码查看

评论区

共 0 条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

【随机内容】

返回顶部