ubuntu 安装sftp

作者: 焚_44b3 | 来源:发表于2017-12-03 19:24 被阅读85次
    1.首先安装ssh服务
    sudo apt-get install openssh-server
    
    2.为sftp创建管理组
    sudo addgroup sftp-users
    
    3.创建SFTP用户,并配置相应权限。这里第二行的意思是将alice从所有其他用户组中移除并加入到sftp-users组,并且关闭其Shell访问。如果想深入了解usermod命令,可以使用以下"man usermod"命令查看帮助文档。
    sudo adduser alice
    sudo usermod -G sftp-users -s /bin/false alice
    

    那天我误将自己的账号从自己组里移除了,连sudo权限都没有了,后来用usermod -a -G caigan2015 caigan2015恢复自己组,用usermod -a -G sudo caigan2015恢复sudo权限

    4.创建SSH用户组,并把管理员加入到该组(注意usermod中的-a参数的意思是不从其他用户组用移除)。
    sudo addgroup ssh-users
    sudo usermod -a -G ssh-users admin
    
    5.创建监狱目录。其实这是为了安全起见来创建的目录。该“监狱”目录拥有以下权限:

    1.超级管理root拥有所有权限
    2.其他任何用户都不能拥有写入权限。

    所以,为了让sftp能上传文件,必须在“监狱”根目录下再创建一个普通用户能够写入的共享文件目录。为了便于管理员通过SFTP管理上传的文件,我把这个共享文件目录配置为:由root所有,允许sftp-users读写。这样,管理员和SFTP用户组成员就都能读写这个目录了。

    sudo mkdir /home/sftp_root
    sudo mkdir /home/sftp_root/shared
    sudo chown admin:sftp-users /home/sftp_root/shared
    sudo chmod 770 /home/sftp_root/shared
    

    当然,目录具体位置由自己设定,比如我是一个网站管理员 我就设置为
    /var/www/html/

    6.修改SSH配置文件。
    sudo nano /etc/ssh/sshd_config
    

    在sshd_config文件的最后,添加以下内容:

    AllowGroups ssh-users sftp-users
    Match Group sftp-users
    ChrootDirectory /home/sftp_root
    AllowTcpForwarding no
    X11Forwarding no
    ForceCommand internal-sftp
    

    这些内容的意思是:
    只允许ssh-uers及sftp-users通过SSH访问系统;
    针对sftp-users用户,额外增加一些设置:将“/home/sftp_root”设置为该组用户的系统根目录(因此它们将不能访问该目录之外的其他系统文件);禁止TCP Forwarding和X11 Forwarding;强制该组用户仅仅使用SFTP。
    如果需要进一步了解细节,可以使用“man sshd_config”命令。这样设置之后,SSH用户组可以访问SSH,并且不受其他限制;而SFTP用户组仅能使用SFTP进行访问,而且被关进监狱目录。

    7.重启系统以便使新配置生效。
    sudo reboot now
    

    相关文章

      网友评论

        本文标题:ubuntu 安装sftp

        本文链接:https://www.haomeiwen.com/subject/jqlzbxtx.html