通过PHP创建FTP用户

时间:2012-12-18 04:27:49

标签: php bash ubuntu

是否可以在ubuntu上执行此任务?

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

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

由于

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

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

我需要能够在指定或没有任何密码时设置密码。我怎样才能实现其中任何一个?

1 个答案:

答案 0 :(得分: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开头,这是使用MD5的crypt(),这是它最终使用的。要获取加密密码,请执行以下操作:

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

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