CentOS 5.5下SFTP用户权限设置

众所周知,sftp是ftp的安全升级版,是通过Openssh组件来实现的,具体的工作原理不再在此讲(网上一抓一大把),述下面我们就来配置一个能够限定用户权限的sftp务器端。

   环境介绍:CentOS release 5.5 x86_64
 一、首先查看系统自带openssh软件组的版本,版本过低则不支持此功能 

ssh -V  

CentOS 5.5下SFTP用户权限设置

 #系统自带为4.3版本,版本过低,不支持此功能,升级openssh的版本 

 二、升级Openssh组件版本,在此将其升级为5.8版本:

    1、下载所需要的软件:
    
libedit0-3.0-1.20090722cvs.el5.x86_64
    
wget 

   openssh-5.8p2-16.el5.1.x86_64
    wget 
    
openssh-askpass-5.8p2-16.el5.1.x86_64
    wget 
    
openssh-clients-5.8p2-16.el5.1.x86_64 
    wget 
    
openssh-server-5.8p2-16.el5.1.x86_64

    wget 

    2、安装新版本所需的库文件:    

rpm -ivh libedit0-3.0-1.20090722cvs.el5.x86_64 

    3、升级sftp所需的软件组,将四个软件放到任何一个干净的目录下:    

rpm -Uvh * 

    更新过程如果没有报错,查看版本是否已经更新为5.8   

ssh -V      #已经升级为5.8版本

    三、示例及配置

     示例:

     在此列举两个用户:uer1,user2分别属于group1,group2两个组,两个目录groupone,grouptwo在目录lg中目的:
     1、user1(即属于group1的用户)只有在groupone这个目录中具有读写权限,在grouptwo目录中没有任何权限

     2、user2(即属于group2的用户)只有在grouptwo这个目录中具有读写权限,在groupone目录中没有任何权限

     3、user1和user2只能在自己的目录下活动   

     配置过程:

     1、按照如下方法修改配置文件

Match group group1,group2   #定义属于这两个组的用户才能登录       ChrootDirectory /lg  #定义这两个组的用户只能在lg这个目录下活动,要保证用户的家目录的父目录必须有XX5权限,且属主为root;      X11Forwarding no       AllowTcpForwarding no       ForceCommand internal-sftp  #保存退出      

     2、添加所需的目录(在目录不存在的情况下)

mkdir -p /lg/groupone mkdir -p /lg/grouptwo 

     3、添加用户组

groupadd group1 groupadd group2 

     4、添加用户

useradd -g group1 -d /lg/groupone  -s /bin/false  user1  #添加家目录为/lg/groupone属组为group1且不能登录系统的用户user1 useradd -g group2 -d /lg/grouptwo  -s /bin/false  user2 

     5、给user1和user2设置密码

passwd user1 passwd user2 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/psxzz.html