众所周知,sftp是ftp的安全升级版,是通过Openssh组件来实现的,具体的工作原理不再在此讲(网上一抓一大把),述下面我们就来配置一个能够限定用户权限的sftp服务器端。
环境介绍:CentOS release 5.5 x86_64
一、首先查看系统自带openssh软件组的版本,版本过低则不支持此功能
#系统自带为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_643、升级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、按照如下方法修改配置文件
2、添加所需的目录(在目录不存在的情况下)
mkdir -p /lg/groupone mkdir -p /lg/grouptwo3、添加用户组
groupadd group1 groupadd group24、添加用户
useradd -g group1 -d /lg/groupone -s /bin/false user1 #添加家目录为/lg/groupone属组为group1且不能登录系统的用户user1 useradd -g group2 -d /lg/grouptwo -s /bin/false user25、给user1和user2设置密码
passwd user1 passwd user2