限制SCP/SFTP用户在指定的目录
2012-06-02 21:23:14   来源:熊熊看世界   评论:0 点击:

我们知道,使用SSH协议可以实现UNIX服务器安全的远程登录管理,也可以使用SSH协议进行安全的SCP或SFTP的文件传输。但默认情况下,能够SCP或...

我们知道,使用SSH协议可以实现UNIX服务器安全的远程登录管理,也可以使用SSH协议进行安全的SCP或SFTP的文件传输。但默认情况下,能够SCP或SFTP的帐号都能够远程登录服务器,由于有时候仅使用SCP或SFTP给一些编辑人员上传文件而并不需要他们远程登录,这给服务器的管理会带来隐患。如何在使用SCP/SFTP进行文件的时候,将用户限定的指定的目录呢?(这实现是我们所说的CHROOT功能)。

我们可以通过一款scponly的小软件来实现这个功能。

SCPONLY软件的官网地址:http://sublimation.org/scponly/wiki/index.php/Main_Page
结合使用scponly,可以让用户只能运行scp / sftp等命令,它兼容rsync、subversion、gftp等客户端软件,对winscp这个SCP客户端支持很好。

一、scponly的安装

#wget http://nchc.dl.sourceforge.net/sourceforge/scponly/scponly-4.8.tgz
#tar zxvf scponly-4.8.tgz
#cd scponly-4.8
#./configure --prefix=/usr/local/scponly --enable-chrooted-binary --enable-winscp-compat --enable-sftp-logging-compat --enable-scp-compat --enable-rsync-compat --enable-passwd-compat
#make
#make install
#echo /usr/local/scponly/sbin/scponlyc >> /etc/shells

二、使用scponly限制scp/sftp用户在指定目录。有2个方法:
1)利用其提供的脚本工具:make jail,创建新的限制用户及目录;在安装源目录下运行:
#make jail
按提示输入新用户,上传目录及密码:(如下面创建了一个test用户,上传目录为upload)
Username to install [scponly]test
home directory you wish to set for this user [/home/test]
name of the writeable subdirectory [incoming]upload
creating  /home/test/upload directory for uploading files

若希望winscp不出现“找不到groups"的警告,你可心设定winscp不寻找groups文件或者你可以创建一个假的groups文件如:
cp groups /home/test/bin/groups 
(注:当然你也可以使用make groups自动生成groups文件) 

限制SCP/SFTP用户在指定的目录

2,手工创建受限用户:

1)使用useradd -d /pub -s /usr/local/bin/scponlyc scpuser
(scpuser为用户名,/pub为其家目录,注意用户家目录须设为用户不可写,可写可能会使得用户修改ssh配置文件从而越过scponly)
(注:若用户要求其家目录可写,有一种方法是指定chroot目录及其cd的子目录2个目录,例如:

/home/userchroot//writable/subdir

//之前的目录是用户chroot的目录,//之后的子目录为登录之后cd进入的目录。

三、其他(若RHEL AS 4.0以上,可以还需要做出以下修改),以受限test用户为例:

#mkdir /home/test/dev
#cp -a /dev/null /home/test/dev/

若为64位系统:
# cp /lib64/ld-linux-x86-64.so.2 /home/test/lib64/
#cp /lib64/libnss_files.so.2 /home/test/lib64/

另,打开DEBUG之后,一定要关闭,否则WINSCP无法成功列目录。(即echo 2 > /usr/local/scponly/etc/scponly/debuglevel打开DEBUG)

相关热词搜索:SCP SFTP winscp

上一篇:Linux系统中为普通用户创建特殊权限的终端(SCREEN)
下一篇:Windows下脚本文件的命名导致故障

分享到: 收藏
评论排行