用shell用户或虚拟用户登录pureftpd(3)

  通过上面提到的命令,你可以创建、修改和删除虚拟用户,甚至可以手工方式编辑“/usr/local/etc/pureftpd.passwd”文件。但是,只有提交这些更改,pure-ftpd 访问才能生效。类似数据库中的事务处理。

  提交更改,意味着系统会根据(或者指定的其它文件)来创建一个 pure-ftpd 可读的二进制格式的文件。 该二进制文件中的帐号是分类存储并索引优化了的,可以加快访问速度。

  创建 PureDB 文件的命令如下:

  # pure-pw mkdb

  运行命令后,系统会在“/usr/local/etc/pureftpd.passwd”文件所在目录自动生成“/usr/local/etc/pureftpd.pdb”索引文件。

  如果你想从你指定的 passwd 文本文件中生成PureDB 文件,用“-f”选项。

  # pure-pw mkdb /etc/accounts/ftpusers.pdb -f /etc/accounts/ftpusers.txt

  创建了 PureDB 文件(也就是提交)后,不必重启 pure-ftpd 服务,对虚拟用户进行的创建、修改和删除等操作立即生效。

  同时,也可以通过“-m”选项,让“/usr/local/etc/pureftpd.passwd”文本文件在修改(如添加用户、修改密码、删除用户等等)后自动提交。命令格式如下:

  # pure-pw passwd joe –m

  这个命令将修改“/usr/local/etc/pureftpd.passwd”文本文件中的用户密码,并将更改提交给“/usr/local/etc/pureftpd.pdb”。

  4、更改配置文件让虚拟用户生效

  将配置文件中的 PureDB 文件路径改为你的PureDB 文件路径。

  # ee /usr/local/etc/pure-ftpd.conf

  PureDB /usr/local/etc/pureftpd.pdb //Puredb路径

  通过以上建立的用户,可上传,可下载,可删除,拥有全部权限。可以通过对目录的限制来达到对用户权限的限制,以后再讲解。

  开启虚拟用户后,如果在配置文件中设置“UnixAuthentication no”,pureftpd就只支持虚拟用户登录,不支持系统真实用户登录。如果设置“UnixAuthentication yes”,pureftpd只支持虚拟用户登录,同时支持系统真实用户登录。

  三、技巧

  1、将系统用户转换为虚拟用户。

  你可以用“pure-pwconvert”命令,将系统(/etc/passwd)用户转换为虚拟用户。

  命令如下:

  # pure-pwconvert >> /usr/local/etc/pureftpd.passwd

  如果你以非特权的系统用户身份运行该命令,密码栏将是空的。如果你以 root 用户身份运行该命令,所有特性都被复制过来,甚至是经过哈希函数加密的密码。

  这个转换只会把有 shell 访问权的用户转换过来,shell 访问设置为 nologin 的将不被转换。

  系统用户转化为虚拟用户的意义在于,同一个用户名可以用不同的密码访问 FTP 和 Telnet 。

  2、环境变量

  默认的情况下,如果指定了环境变量 PURE_PASSWDFILE ,则虚拟用户的 passwd 文件位置由该变量的值指定。否则,默认是位置是“/usr/local/etc/pureftpd.passwd”(Linux 中是“/etc/pureftpd.passwd”)。

  同样,PURE_DBFILE 环境变量用来指定 pdb 文件的位置。默认是“/usr/local/etc/pureftpd.pdb”(Linux中“/etc/pureftpd.pdb”)。 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzyzxs.html