下载proftp最新版。
下载地址: [url]ftp://ftp.proftpd.org/distrib/source/[/url]
二、安装
tar zxvf proftpd*.gz                       //解压文件。
cd proftpd*                                    //考虑到版本不同,所以我用“ * ”代替后面的字符。
./configure --prefix=/usr/proftpd sysconfdir=/etc/proftpd                       //配置安装的目录和Proftp配置文件“proftpd.conf”的目录。
make
make install
“/usr/proftpd/sbin/proftpd”  就是这个文件了。直接运行就可以了。(注意:这个文件实际上可以说是重新生效配置,因为当你重新启动系统或是重新修改了配置文件后,需要运行它来达到生效的目的。)
OK现在我们输入命令
/usr/proftpd/sbin/proftpd
这个时候你访问你的FTP应该是没问题的了。但这时候你不能修改目录里面的东西,因为你是匿名的。
随便说一句如果你是Suse的系统,FTP的默认目录在  /srv/ftp   这个下面。
好了,刚才我们说过,不光要用匿名登陆,还用有用户  zhmadmin  能够登陆并修改文件。
输入命令
useradd zhmadmin -d /srv/ftp -g ftp        //添加用户 zhmadmin  指定主目录和用户组
passwd zhmadmin                                   //设置密码
123
123                                                           //连续输入两次一样的密码
chown -R zhmadmin.ftp /srv/ftp                //设置目录/srv/ftp的归zhmadmin这个用户和FTP这个组
chmod 755 /srv/ftp                                   //设置这个目录的权限(如果你看不懂什么意思,那就要自己找资料了,或是联系我QQ。)
好了,剩下来就是配置  proftpd.conf  了
这个时候我们需要修改配置文件,输入命令
vi /etc/proftpd/proftpd.conf
(不要告诉我你不会用  VI)
我们找一个适当的位置写我们的命令,我选择了在设置匿名登陆的上面输入。
  <Limit LOGIN>
   AllowUser zhmadmin
  </Limit>
这样就可以用zhmadmin登陆了。你会发现你用zhmadmin登陆后就可以修改FTP里面的内容了。因为我们在上面设置了
chmod 755 /srv/ftp
只用zhmadmin可以上传,匿名和其他的是不可以的。
配置文件如下
ServerName                      "ProFTPD Default Installation"
ServerType                      standalone
DefaultServer                   on
Port                            21
Umask                           022
MaxInstances                    30
User                            nobody
Group                           nogroup
#DefaultRoot ~ ftp
AllowOverwrite          on
<Limit SITE_CHMOD>
  DenyAll
</Limit>
  <Limit LOGIN>
   AllowUser zhmadmin
  </Limit>
<Anonymous ~ ftp>
  User                          ftp
  Group                         ftp
  UserAlias                     anonymous ftp
  MaxClients                    10
  DisplayLogin                  welcome.msg
  DisplayFirstChdir             .message
  <Limit WRITE>
    DenyAll
  </Limit>
</Anonymous>
要达到的目的是FTP和APAECH结合,是用户的WEB目录和FTP目录是一个,这样就可以达到用FTP上传文件的效果了。因为我的目的是这样的,所以我不允许匿名登陆。
mkdir /home/z1
mkdir /home/z2
mkdir /home/z3
groupadd web
useradd z1 -d /home/z1 -g web -s /bin/false
useradd z2 -d /home/z2 -g web -s /bin/false
useradd z3 -d /home/z3 -g web -s /bin/false
用/sbin/nologin这样的话系统和FTP都不可以登陆了。所以我后来试了一下,还是用/bin/false
chown -R .web /home
chmod -R 750 /home
做到这个我们可以来分析一下,就系统方面来看。也就是不考虑FTP的问题。我们看。现在这三个用户都可以访问自己的目录。但问题是也能访问别人的目录。这是不行的。所以我们在FTP的配置文件中一定要限制用户只能在自己的目录下活动。如果你要问我。为什么不把目录的属性设置成700。我也试过,因为我们用FTP登陆的时候是允许一个组的用户登陆。也就是在登陆的时候是用WEB这个组用户的身份登陆的。如果设置成700不允许组用户察看的话。那就登陆不了了。
好了,看看我的配置文件。
ServerName                      "Free FTP"
ServerType                      standalone
DefaultServer                   on
Port                            21
Umask                           022
MaxInstances                    30
ExtendedLog /var/log/proftpd.log ALL
ServerIdent                     off
User                            nobody
Group                           nogroup
DefaultRoot ~ web
<Limit LOGIN>
AllowGroup web
</Limit>
<Directory /home>
AllowOverwrite          on
AllowStoreRestart       on
TransferRate RETR 500 group ftp        
TransferRate STOR 100 group ftp        
<Limit ALL>
AllowGroup             web
</Limit>
</Directory>
<Limit SITE_CHMOD>
  DenyAll
</Limit>
配置完后,启动服务。可以实现这三个用户只能登陆FTP,不能登陆系统。只能访问自己的文件夹,不能访问别人的。可以在自己的文件夹下做任何操作。
而且只能用WEB组的用户登陆。限制上传,下载速度。
Proftp连接后显示:500 FTP server shut down,是怎么回事?
A: 删除文件/etc/shutmsg即可