在Windows下FTPD以某一个帐号运行,所有的FTP用户权限管理全部由FTPD来完成与系统帐号无关。
在xNix下,FTPD则只允许那些系统帐号登陆。
为了安全,我们会希望FTPD用户和系统帐号分离方便管理。
首先,在proftpd.conf中添加:
然后,重启portftpd服务:
service proftpd restart
AuthOrder为FTP用户身份验证顺序。
mod_auth_file.c是ProFTPD的虚拟用户验证,虚拟用户和组的信息存储在下面的AuthUserFile和AuthGroupFile指定的文件中,这里为了简单,没有使用虚拟组。
mod_auth_unix.c是系统用户身份验证,即/etc/passwd。
然后,添加一个新的虚拟用户:
ftpasswd --passwd --file=/usr/local/etc/ftpd.passwd --name=test --uid=1002 --home=/usr/local/ftp/test --shell=/usr/sbin/nologin
–passwd指定建立一个新的虚拟用户,–group则建立一个虚拟组;
–file指定存储虚拟用户的文件;
–name指定此虚拟用户的用户名,密码会在命令执行时要求输入;
–uid指定此虚拟用户对应的系统用户UID,此虚拟用户将以此系统UID的身份读写文件;
–home指定此虚拟用户的根目录,就是其登陆FTP后的根目录;
–shell指定此虚拟用户的shell,为了安全当然指定一个不可登陆的shell了。
如果是源码安装的proftpd ,服务项proftpd以及命令ftpasswd分别在如下两个目录
ftpasswd :源码包目录/contrib/ftpasswd
proftpd服务程序:源码包目录/contrib/dist/rpm/proftpd.init.d
加上可执行权限。然后将ftpasswd 拷贝到/usr/local/sbin目录下面,将proftpd.init.d拷贝到/etc/init.d/下面,然后,重命名为proftpd。