当前位置:  技术问答>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行不行。

|
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服务器。

|
注意这一句:每个目录都可以定义一个".ftpaccess"设置文件,就如同Apache的".htaccess"文件一样可以设定 
该目录的存取权限。

    
 
 

您可能感兴趣的文章:

  • 我想做linux下的还原备份,实现与还原精灵虚拟还原等一样的功能,应该怎么做?另外现在有实现这种功能的成熟产品是哪一种?
  • 要实现多启动,安装时Master Boot Record和First Sector of Boot Partition,到底应该选哪个? iis7站长之家
  • 想实现类似“生产者、消费者”问题,应该如何设置buffer?
  • 实现b/s模式的ERP系统?应该使用java中的那些技术?
  • 在window 的操作系统里,应该有个软件可以实现,安装一个虚拟的linux操作系统
  • 需要从数据库中动态生成的页面是该在SERVLET输出生成,还是应该在JSP编码实现?
  • 请问我要在Linux下作多播大致应该怎么实现?
  • 用Adapter实现点击右上角的X关闭窗口程序应该怎么写?
  • ucosII 实现允许存在同优先级任务,ID应该怎么设置?更改优先级后任务ID怎么办?
  • 自己实现linux下的ftp客户端,先用port命令后用append命令,报告错误425请问是哪里错了?,应该把模式置为pasv嘛??
  • 一个J2EE应用需要同客户端保持一个安全的(SSL/HTTPS)长连接,请问此部分的代码应该用什么J2EE component来实现,Session EJB or Servle
  • 要实现在Win2000下访问我在linux中安装的Web页面,我应该如何操作?
  • 请教:VM下装的linux,用ftp方式实现与主机xp系统的文件共享,具体应该怎么做?
  • 既然是实现的Cloneable接口,应该是一样的啊!请不吝赐教。绝对给分。
  • 如果没有操作系统,Hello World可以运行吗?如果要在一台没有操作系统的机器上运行Hello World需要什么?应该怎么实现?
  • 要实现message进程通信的send()和receive()在linux中应该添加什么头文件或导入怎样的库呢?
  • 要实现多启动,安装时Master Boot Record和First Sector of Boot Partition,到底应该选哪个?
  • 我有两块硬盘,我想在新买的硬盘上安装linux和win2000,应该怎么办才可以实现linux,win2000和win98(原来那个硬盘装的os)?
  • 请问那位有原断点续传的原码...(要支持上传和下载)???或者讲讲应该怎么实现...
  • 通过javascript库JQuery实现页面跳转功能代码
  • 我想把csdn的论坛改成一个软件平台,另外增加数据查询功能,聊天功能,不知怎样实现比较好?我想用jbuider 7+SQL server实现,不知如何?
  • 基于python实现的网络爬虫功能:自动抓取网页介绍
  • 我想定义一个宏来实现文中功能,但是不知道我说的功能到底可不可以实现
  • struts+spring+hibernate+jquery实现分页功能的几个基本类介绍(异步加载)
  • 请问在linux下面,有没有硬盘整理的功能,或者有什么软件可以实现硬盘整理的功能?
  • Andriod UI中viewFlow实现仿淘宝的自动播放功能
  • 要实现无线功能部分,是单独写一个驱动,还是在原有驱动上扩充无线功能,哪个简单点?
  • 在linux下如何编程实现nslookup命令实现的IP地址和域名互相转换的功能?
  • Linux和Unix相对WIN、NETWARE有什么好处?他们之间有什么区别?WIN、NETWARE能实现的功能LINUX和UNIX能实现吗?
  • S3C2410按键驱动功能实现
  • java编程可实现一些什么样的功能?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • socket实现多文件并发传输,求助多线程实现问题?
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • interface 到底有什么用???实现接口,怎么实现??
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 怎么用Jsp实现在页面实现树型结构?
  • php实现socket实现客户端和服务端数据通信源代码
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • flash AS3反射实现(describeType和getDefinitionByName)
  • 网站重定向用C语言实现iptables,ACL实现
  • boost unordered_map和std::list相结合的实现LRU算法
  • 求在freebsd+Squid下实现pc上网的透明代理的实现方法!给出具体配置方法的高分谢!
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • linux下如实现与window下的驱动器实现文件共享??
  • 使用java jdk中的LinkedHashMap实现简单的LRU算法
  • qt如何实现:操作键盘实现数据的滚动?
  • iphone cocos2d 精灵的动画效果(图片,纹理,帧)CCAnimation实现
  • 我想用APPLET实现读取客户端的图片文件,该如何实现?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • PING是用TCP,还是用UDP来实现的?或是采用其它协议实现的?
  • html<pre>标签自动换行实现方法
  • ejb-ql只能 like '?%' 么?我想实现模糊查寻,想实现 like'%?%' 怎么办??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3