ubuntu server12.04配置sftp

来源:互联网 发布:微信支付服务端java 编辑:程序博客网 时间:2024/06/05 18:04

设置SFTP的目标如下: 

    1. 用户只能通过sftp访问,不能登录SSH 

    2. 用户要被锁定在特定的目录下,没有读写其它目录的权限 

下面开始:

    1、首先修改sshd的配置文件: 

          $ sudo nano /etc/ssh/sshd_config 


     2、将该文件的末尾修改如下:

            #Subsystem sftp /usr/lib/openssh/sftp-server   #该行注释掉
            Subsystem sftp internal-sftp 

            #UsePAM yes    #该行同样注释掉,或者移到Subsystem sftp internal-sftp的上面

            Match Groupsftp-users   #匹配sftp组,如为单个用户可用:Match User test;  
                     ChrootDirectory /sftphome/  
                     X11Forwarding no
                     AllowTcpForwarding no
                     ForceCommand internal-sftp

#ChrootDirectory:指定用户被锁定到的目录,为了能够chroot成功,该目录必须属主是root,并且其他用户或组不能写

     3、下面建立sftp-users组和一个测试用户test,并把该用户加到sftp-users组:

         $ sudo groupadd sftp-users
         $ sudo gpasswd -a testsftp-users
         $ sudo passwd test


     4、更改文件夹属性:

         sudo chown root /sftphome/
         sudo chmod 755 /sftphome/
         sudo mkdir /sftphome/writeable
         sudo chown -R test:sftp-users /home/bob/writeable #更改文件夹及其子文件夹的属主
         sudo chmod 755 /home/bob/writeable

        5、重启SSH服务 sshd:
               $ sudo  /etc/init.d/ssh  reload


参考:http://yhf8377.blog.163.com/blog/static/176860177201210217219800/

          http://askubuntu.com/questions/134425/how-can-i-chroot-sftp-only-ssh-users-into-their-homes


linux权限

Linux权限分为 r=4,w=2,x=1,即读,写,执行,权限一共有7(4+2+1),每个文件都有权限,比如:

以share文件夹为例说明, 每个文件夹前面有对应的权限列表( ls -all ),

三个一组:      rwx                  rwx               r-x

               拥有者           拥有者所在用户组      其他人

拥有者是test,所在的组是sftp-users ,test的权限是可读可写可执行,他所在用户组的所有成员也拥有这些权限,需要如下设置:


1. 更改文件拥有者

                     sudo chown test:sftp-users   -R  share           # -R 代表递归整个目录

2.提升用户及其用户组的权限

                     sudo chmod 775 share

第一个7 代表zq的权限,第二个7代表test所在用户组的权限,第三个5代表其他人的权限(5=4+1,即可读可执行,不可写)  

    

原创粉丝点击