当前位置: 技术问答>linux和unix
要实现以下的功能,我应该用哪一个FTP软件。
来源: 互联网 发布时间:2015-04-18
本文导语: 目录结构如下: ftproot----------user1(group1) |____user2(group1) |____user3(group1) |____share1 |____user4(group2) |____user5(group2) ...
目录结构如下:
ftproot----------user1(group1)
|____user2(group1)
|____user3(group1)
|____share1
|____user4(group2)
|____user5(group2)
|____user6(group2)
|____share2
|____admin1(admin-group3)
|____admin2(admin-group3)
|____admin3(admin-group3)
要求如下。
1.各用户能读写自已的目录和自已组的共享目录,不能访问其它人的目录。
2.admin用户组能读写各用户组的共享目录,不能访问其它人的目录。
即组group1的用户都能访问share1,组group2的用户都能访问share2.
组admin-group3的用户都能访问share1,share2,所有用户都不能访问其它人的目录。
实现这个功能需要用哪个软件,怎样设置。
我试了wu-ftpd好像不行,不知proftpd行不行。
ftproot----------user1(group1)
|____user2(group1)
|____user3(group1)
|____share1
|____user4(group2)
|____user5(group2)
|____user6(group2)
|____share2
|____admin1(admin-group3)
|____admin2(admin-group3)
|____admin3(admin-group3)
要求如下。
1.各用户能读写自已的目录和自已组的共享目录,不能访问其它人的目录。
2.admin用户组能读写各用户组的共享目录,不能访问其它人的目录。
即组group1的用户都能访问share1,组group2的用户都能访问share2.
组admin-group3的用户都能访问share1,share2,所有用户都不能访问其它人的目录。
实现这个功能需要用哪个软件,怎样设置。
我试了wu-ftpd好像不行,不知proftpd行不行。
|
ProFTPD设计目标是实现一个安全且易于设定的FTP Server。目前Unix或类Unix平台上
FTP Server十分有限,最常使用的恐怕就是wu-ftpd了。虽然wu-ftpd有着极佳的效能同时也是
一套很好的软件,然而它却欠缺了许多Win32平台上FTP Server的一些特色,同时wu-ftpd过去
也有不少的安全漏洞陆续被发现。ProFTPD的原创者本身就曾经花非常多的时间寻找wu-ftpd
的漏洞加以改进并且增加许多功能。然而十分不幸的是,他很快地发现显然wu-ftpd需要全部
重新的改写才能补足欠缺的设定能力以及缺乏的一些功能。ProFTPD不是从其它FTP Server的
既有原始码修改而产生的,相反的,它是完全独立而完整、重新改写的FTP Server。
ProFTPD的主要包括如下特点:
* 单一主设置文件,包含许多指令以及其支配的组,? 耆际侵惫鄣纳瓒āH绻魑欢訟
pache Web Serve的设置不陌生的话相信一定会觉得十分容易操作设定。
* 每个目录都可以定义一个".ftpaccess"设置文件,就如同Apache的".htaccess"文件一样可以设定
该目录的存取权限。
* 可设定多个虚拟FTP server,而匿名FTP服务更是十分容易。
* 可根据系统的负载(load)选择以单独运作(stand-alone)方式或是由inetd启动。
* 匿名FTP的根目录不需要特定的目录结构、系统二进制执行文件或其它系统文件。
* ProFTPD不执行任何外部程序以免造成安全漏洞。
* 具有隐藏目录或隐藏文件,源自于Unix形式的档案权限,或是user/group类型的档案权限设定。
* 能够以一般使用者在单独运作(stand-alone)模式下执行,以减少某些藉由攻击方式取得root权的
可能性。注:此功能与Unix的操作系统有关。
* 支持系统记录以及utmp/wtmp。
记录的方式与wu-ftpd的标准完全兼容,也支持记录内容的延伸格式。
* 支持Shadow&! nbsp;password,包括了帐号使用期限设定的功能。
编译和安装
Proftpd提供了多种安装格式,包括源代码方式、RPM方式、deb方式(debian软件包)等。本文
主要讨论源代码方式的安装。
从ftp.proftpd.net下载最新版本的proftpd-1.2.0rc3到Linux服务器上。然后按照如下步骤
进行处理:
[root@ftpd /]# cp proftpd-1.2.0rc3.tar.gz /usr/src/
[root@ftpd /]# cd /usr/src
[root@ftpd src]# tar xvfz proftpd-1.2.0rc3.tar.gz
[root@ftpd src]# cd proftpd-1.2.0rc3
[root@pftd proftpd-1.2.0rc3]# ./configure
[root@pftd proftpd-1.2.0rc3]# make
[root@pftd proftpd-1.2.0rc3]# make install
到现在为止,你已经完成了proftpd的编译和安装。并且在/usr/local/etc/目录下有一个默
认的proftpd配置文件proftpd.conf。
启动测试
对于笔者的试验系统RedHat6.2来说,需要将该配置文件中:
Group nogrou! p
修改为:
Group nobody
因为redhat系统中nobody用户属于nobody组,而不是nogroup组。
若需要将proftpd设置为系统启动时自动启动则通过如下命令拷贝启动文件:
[root@ftpd proftpd-1.2.0rc3]# cp ./contrib/dist/rpm/proftpd.init.d /etc/rc.d
/init.d/proftpd
然后修改该脚本的可执行属性:
[root@ftpd /]# chmod +x /etc/rc.d/init.d/proftpd
然后编辑/etc/rc.d/init.d/functions:
修改
export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin"
为
export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin"
注:若将在运行./cofigure命令时通过--prefix选项指定将proftpd安装在/usr/sbin目! 录下
则不需要修改fuctions文件。
然后运行命令:
[root@ftpd rc3.d]# chkconfig --level 35 proftpd on
则下次系统启动以后,proftpd将自动启动。
最后,需要确保系统当前没有ftp服务器在运行:
[root@ftpd /]# netstat -ln
若输出中不包含
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
这样的内容则可以直接启动proftpd,否则需要关闭以前的ftpd服务器。对于一般的缺省
Linux安装来说,则需要通过以下的途径来关闭ftp服务器:
编辑/etc/inetd.conf文件,在
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
一行前加上#:
#ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
然后:
[root@ftpd ! /]# ps ax|grep inetd
350 ? S 0:00 inetd
得到inetd的进程号 ,重新启动inetd进程:
[root@ftpd /]# kill -HUP 350
然后通过如下命令启动proftpd:
[root@ftpd /]# /etc/rc.d/init.d/proftpd start
这时候可以通过如下命令来测试proftpd是否正常运行:
C:WINDOWS>ftp 192.168.2.33
Connected to 192.168.2.33.
220 ProFTPD 1.2.0rc3 Server (ProFTPD Default Installation)[ftpd.test.com.cn]
User (192.168.2.33:(none)): ideal
Password:
230 User ideal logged in.
ftp>
则现在你就拥有了一个安全可靠的ftp服务器。
FTP Server十分有限,最常使用的恐怕就是wu-ftpd了。虽然wu-ftpd有着极佳的效能同时也是
一套很好的软件,然而它却欠缺了许多Win32平台上FTP Server的一些特色,同时wu-ftpd过去
也有不少的安全漏洞陆续被发现。ProFTPD的原创者本身就曾经花非常多的时间寻找wu-ftpd
的漏洞加以改进并且增加许多功能。然而十分不幸的是,他很快地发现显然wu-ftpd需要全部
重新的改写才能补足欠缺的设定能力以及缺乏的一些功能。ProFTPD不是从其它FTP Server的
既有原始码修改而产生的,相反的,它是完全独立而完整、重新改写的FTP Server。
ProFTPD的主要包括如下特点:
* 单一主设置文件,包含许多指令以及其支配的组,? 耆际侵惫鄣纳瓒āH绻魑欢訟
pache Web Serve的设置不陌生的话相信一定会觉得十分容易操作设定。
* 每个目录都可以定义一个".ftpaccess"设置文件,就如同Apache的".htaccess"文件一样可以设定
该目录的存取权限。
* 可设定多个虚拟FTP server,而匿名FTP服务更是十分容易。
* 可根据系统的负载(load)选择以单独运作(stand-alone)方式或是由inetd启动。
* 匿名FTP的根目录不需要特定的目录结构、系统二进制执行文件或其它系统文件。
* ProFTPD不执行任何外部程序以免造成安全漏洞。
* 具有隐藏目录或隐藏文件,源自于Unix形式的档案权限,或是user/group类型的档案权限设定。
* 能够以一般使用者在单独运作(stand-alone)模式下执行,以减少某些藉由攻击方式取得root权的
可能性。注:此功能与Unix的操作系统有关。
* 支持系统记录以及utmp/wtmp。
记录的方式与wu-ftpd的标准完全兼容,也支持记录内容的延伸格式。
* 支持Shadow&! nbsp;password,包括了帐号使用期限设定的功能。
编译和安装
Proftpd提供了多种安装格式,包括源代码方式、RPM方式、deb方式(debian软件包)等。本文
主要讨论源代码方式的安装。
从ftp.proftpd.net下载最新版本的proftpd-1.2.0rc3到Linux服务器上。然后按照如下步骤
进行处理:
[root@ftpd /]# cp proftpd-1.2.0rc3.tar.gz /usr/src/
[root@ftpd /]# cd /usr/src
[root@ftpd src]# tar xvfz proftpd-1.2.0rc3.tar.gz
[root@ftpd src]# cd proftpd-1.2.0rc3
[root@pftd proftpd-1.2.0rc3]# ./configure
[root@pftd proftpd-1.2.0rc3]# make
[root@pftd proftpd-1.2.0rc3]# make install
到现在为止,你已经完成了proftpd的编译和安装。并且在/usr/local/etc/目录下有一个默
认的proftpd配置文件proftpd.conf。
启动测试
对于笔者的试验系统RedHat6.2来说,需要将该配置文件中:
Group nogrou! p
修改为:
Group nobody
因为redhat系统中nobody用户属于nobody组,而不是nogroup组。
若需要将proftpd设置为系统启动时自动启动则通过如下命令拷贝启动文件:
[root@ftpd proftpd-1.2.0rc3]# cp ./contrib/dist/rpm/proftpd.init.d /etc/rc.d
/init.d/proftpd
然后修改该脚本的可执行属性:
[root@ftpd /]# chmod +x /etc/rc.d/init.d/proftpd
然后编辑/etc/rc.d/init.d/functions:
修改
export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin"
为
export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin"
注:若将在运行./cofigure命令时通过--prefix选项指定将proftpd安装在/usr/sbin目! 录下
则不需要修改fuctions文件。
然后运行命令:
[root@ftpd rc3.d]# chkconfig --level 35 proftpd on
则下次系统启动以后,proftpd将自动启动。
最后,需要确保系统当前没有ftp服务器在运行:
[root@ftpd /]# netstat -ln
若输出中不包含
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
这样的内容则可以直接启动proftpd,否则需要关闭以前的ftpd服务器。对于一般的缺省
Linux安装来说,则需要通过以下的途径来关闭ftp服务器:
编辑/etc/inetd.conf文件,在
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
一行前加上#:
#ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
然后:
[root@ftpd ! /]# ps ax|grep inetd
350 ? S 0:00 inetd
得到inetd的进程号 ,重新启动inetd进程:
[root@ftpd /]# kill -HUP 350
然后通过如下命令启动proftpd:
[root@ftpd /]# /etc/rc.d/init.d/proftpd start
这时候可以通过如下命令来测试proftpd是否正常运行:
C:WINDOWS>ftp 192.168.2.33
Connected to 192.168.2.33.
220 ProFTPD 1.2.0rc3 Server (ProFTPD Default Installation)[ftpd.test.com.cn]
User (192.168.2.33:(none)): ideal
Password:
230 User ideal logged in.
ftp>
则现在你就拥有了一个安全可靠的ftp服务器。
|
注意这一句:每个目录都可以定义一个".ftpaccess"设置文件,就如同Apache的".htaccess"文件一样可以设定
该目录的存取权限。
该目录的存取权限。