• 搭建SFTP服务器,允许一个或多个用户拥有一个或多个目录的rwx权限


     


    2019-08-28

    1、引言

      sftp可以为传输文件提供一种安全的网络的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。SFTP 为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。

    2、搭建SFTP前期准备


     OS : CentOS/RHEL 7/6

     Openssh version 4.8以上

    目的:实现某一个或多个用户只可以访问一个或多个目录。(User kunlun对目录A和B有rwx权限,User kunlunsun 对目录C和B拥有rwx权限)


    #ssh -V           #查看openssh版本


    3、创建管理组和用户


    #groupadd sftp

    #useradd -g sftp -s /bin/false kunlun          #  /bin/false   没有可以登录的shell,只能使用sftp登录

    #passwd kunlun

    #useradd -g sftp -s /bin/false kunlunsun

    #passwd kunlunsun

    创建组(用于管理目录和授权用户的组)

    #groupadd A

    #groupadd B

    #groupadd C


     4、创建要访问的目录


    #mkdir -p  /Data/SFTP/A/

    #mkdir -p  /Data/SFTP/B/

    #mkdir -p  /Data/WEB/C/


     5、配置SFTP服务器

    注:由于上述中讲到sftp与ssh的关系,所以我们进行以下操作。


    # vim /etc/ssh/sshd_config            #进入配置文件

    # PasswordAuthentication yes        #如果您的服务器在Cloud上,那么请注意该云平台是否默认只允许密钥登录。

    #Subsystem sftp /usr/libexec/openssh/sftp-server  #注释掉

    Subsystem sftp internal-sftp
    Match Group sftp
    ChrootDirectory /Data/
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

    注:ChrootDirectory /Data/   目录属主(指User)和属组(Group组)必须都是root。

    可以通过getfacl /Data查看owner(user)和group(group)


    6、将用户加入到要访问的“目录”组


    #usermod -a -G A  kunlun          #将用户加入到要访问的目录组

    #usermod -a -G B kunlun

    #usermod -a -G B kunlunsun

    #usermod -a -G C kunlunsun


     7、修改目录的owner和group


    ==============User kunlun的授权=========
    #chgrp  A  A/
    #chmod 770 A/
    #chmod g+w A/
    #chown kunlun:A A/

    #chgrp  B  B/
    #chmod 770 B/
    #chmod g+w B/
    #chown kunlun:B B/
    ==============User kunlunsun授权=========

    #chgrp  C  C/
    #chmod 770 C/
    #chmod g+w C/
    #chown kunlunsun:C C/

    注:由于前面已经给过目录B做过授权所以只需要将用户kunlunsun加入到目录B的组即可(加入组的操作在第6步完成)


    通过getfacl B/或A/目录查看目录的owner和group权限

    亲测:经过以上操作,用户将对相应的目录有rwx权限

    另:

      通过setfacl授权,经过测试无效果。

      个人感觉这种做法还可以更简便,欢迎各位多多测试,有更简便的方法欢迎留言,有问题也可以留言提出,看到会第一时间回复。

  • 相关阅读:
    第10组 Beta冲刺(2/5)
    第10组 Beta冲刺(1/5)
    第10组 Alpha事后诸葛亮
    3月7-第十次机试课记录
    3月5-第九次机试课记录
    3月2-第八次机试课记录
    3月1-第六次机试课记录
    2月28-第五次机试课记录
    STL
    2月27-第四次机试课记录
  • 原文地址:https://www.cnblogs.com/kunlunsun/p/11423915.html
Copyright © 2020-2023  润新知