时时商务社区
标题:
用PHP实现Ftp用户的在线管理的代码
[打印本页]
作者:
yj1281
时间:
2018-2-14 09:25
领导要我策划一个网页设计大赛和Flash创作大赛,要求必须实现在线报名和上传作品。通过FreeBSD+Apache+PHP+Mysql+FTP我实现了该要求。
实现在线报名和上传作品的思路是利用网页表单收集用户填写的资料存储到Mysql数据库内,同时以该用户的注册名创建一个FTP上传账号并创建该用户的相应目录。
FTP服务器是系统默认带的,采用系统用户的用户名和密码,创建系统用户就等于创建FTP用户,FreeBSD是属于UNIX阵营的操作系统,它没有象Linux一样的useradd和groupadd等创建用户和组的命令,其取而代之的是pw命令加上相应参数来实现,在Freebsd上以管理员的身份创建一个用户的命令是
echo | pw useradd
[-g][groupname] [-s][shelldir][-h 0]
参数g指定用户组,参数s指定用户的shell。
如果是普通用户登陆的话还必须用到su命令,调用的方法是
su root –c ‘echo | pw useradd
[-g][groupname] [-s][shelldir][-h 0] '
执行之后系统会要求输入管理员密码,输入密码就可以以管理员的身份执行这个命令了。
实现这步操作的主要难点在于如何通过PHP来调用上面这些系统命令去创建一个用户,本例是使用PHP中的popen()函数来实现的,该函数执行指令打开文件,语法是int popen(string command, string mode),其打开的文件只能是单向的,只能读或只能写,对应的“string mode”为'r'或'w',“string command” 就是命令字符串,在对文件的操作上可使用 fgets()、fgetss()与fputs()函数,本例用fputs()函数往文件里面输入管理员密码。若是开档发生错误将返回 false 值,最后函数要记得调用pclose()关闭。
下面我们来规划一下FTP用户的组,事先我们先用pw groupadd ftpuser创建ftpuse组,让在线申请的用户为这个组的成员。为了安全起见,我们不应该给FTP用户Telnet权限,所以我们还要专门给他们创建一个shell,使得他们不能通过Telnet正常登陆系统,方法如下:先创建一个文件/bin/ftponly
#!/bin/csh
/bin/cat [U]复制代码[/U] 代码如下:
申请FTP账号
申请FTP账号
">
账号名称:
密码:
您可能感兴趣的文章:
php实现从ftp服务器上下载文件树到本地电脑的程序
php下连接ftp实现文件的上传、下载、删除文件实例代码
php ftp文件上传函数(基础版)
用PHP实现Ftp用户的在线管理
深入PHP FTP类的详解
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
PHP实现ftp上传文件示例
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
php中ftp_chdir与ftp_cdup函数用法
php建立Ftp连接的方法
PHP中FTP相关函数小结
欢迎光临 时时商务社区 (http://bbs.4435.cn/)
Powered by Discuz! X3.2