1

这个任务可以在 ubuntu 上完成吗?

我已经设法通过 php 创建 vhost,我需要通过 php 创建 ftp 用户。我们正在尝试将特定目录分配给通过 Web 注册创建帐户的内部用户。

我通过使用 filezilla 服务器在 Windows 上完成了此操作,可以在其中编辑 xml,并且可以通过 php 调用刷新。我需要为 linux 复制这个。

谢谢

更新: joe:$1$LX/3.F60$bYdYwsQOYIaWq.Ko.hfI3.:500:101::/home/ftpusers/joe/./::::::1000:10485760::::::

这是文件密码,我尝试按照上述格式添加另一个用户,它可以工作,但是相同的密码哈希不适用于第二个帐户。

我需要能够按照他们指定的方式设置密码或不使用任何密码。我将如何实现其中任何一个?

4

1 回答 1

0

通过从命令行运行来安装 PureFTPD:

sudo apt-get install pure-ftpd

然后按照 Ubuntu 文档页面上的说明设置组、文件夹等:

这是将创建一个新用户的命令,但是很难将密码传递到命令行:

sudo pure-pw useradd joe -u ftpuser -d /home/ftpusers/joe

因此,最好创建一个起始用户来生成位于 /etc/pure-ftpd/ 中的用户配置文件,因为您说这是供内部使用并且您并不真正关心安全性,您可以更改文件的权限所以您可以使用 PHP 对其进行编辑。检查它的格式,然后让 PHP 用适当的值向它添加一个新的用户部分。如果我记得它是一个 XML 文件,那么使用 PHP 的 XML 或 DOM 函数会很好用。


关于以下评论的更新:

根据 PureFTPD:

密码使用系统支持的最佳单向哈希函数进行哈希处理。哈希按此顺序尝试:Blowfish、MD5、多个 DES、简单 DES。

由于您的字符串以 $1 开头,它用于 crypt() 使用 MD5,这就是它最终使用的。要加密密码,请执行以下操作:

echo crypt('YOUR_PASSWORD', '$1$LX/3.F60$');

$1 指定使用 MD5 哈希,因为这是您的系统默认使用的,$ 中的 $LX/3.F60$ 部分是您的盐。

于 2012-12-18T05:19:05.970 回答