linux搭建ftp修改域名访问,linux下构建建设完美FTP服务器

关键字:ubuntu linux Apache2 PHP5 Pure-FTPD pureftpd MySQL5

linux下构建建设完美FTP服务器,可管理,WEB管理,管理界面。

===============================================

一、安装Ubuntu5 Desktop版

===============================================

来源博客:[url]http://blog.csdn.net/xuchenguang/[/url]

编写整理:徐晨光  MSN:[email]xuchenguang@msn.com[/email]

参考资料:[url]http://wiki.ubuntu.org.cn[/url]论坛中的贴子,

以及从互联网“摆渡”出来的资料。

===============================================

安装过程不难,依照[url]http://wiki.ubuntu.org.cn[/url]快速设置即可,注意下面两点:

1、网通用户请选择上海交大的源,比较快。

我在烟台,用的网通的网,选cn99的源也只有3K,快时也不过13K。

2、ms分区下的中文目录名显示为???

这时,你要编辑/etc/fstab。比如我的Dell笔记本中的fstab文件改后是:

# /etc/fstab: static file system information.

#

#              

proc            /proc           proc    defaults        0       0

/dev/hda3       /               ext3    defaults,errors=remount-ro 0       1

/dev/hda1       /media/hda1     ntfs    auto,user,nls=utf8,umask=0 0 0

/dev/hda5       /media/hda5     vfat    auto,user,utf8,umask=0 0 0

/dev/hda4       none            swap    sw              0       0

/dev/hdb        /media/cdrom0   udf,iso9660 user,noauto     0       0

/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0

/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0

======================================

3.Breezy(5.10)设置本地local环境

sudo dpkg-reconfigure locales    #把所有zh-开头的都选上。

===============================================

二、ubuntu Linux下手工安装mysql5

===============================================

来源博客:[url]http://blog.csdn.net/xuchenguang/[/url]

编写整理:徐晨光  MSN:[email]xuchenguang@msn.com[/email]

参考资料:[url]http://wiki.ubuntu.org.cn[/url]论坛中的贴子,

以及从互联网“摆渡”出来的资料。

===============================================

1、下载mysql5的linux版本。

地址:[url]http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.20.tar.gz/from/http://mirror.vmmatrix.net/mysql/[/url]

2、安装GCCt等必备的软件:

在终端下执行(网通用户请用交大的源):

sudo apt-get install gcc cpp g++ libncurses5-dev

sudo apt-get install make autoconf automake libtool

3、解压:

对于*.tar.gz的文件使用命令tar zxvf *.tar.gz来解压;

对于*.tar.bz2的文件使用命令tar jxvf *.tar.bz2来解压.

将mysql,php,apache以及gd安装到/opt/目录下,便于管理.

具体过程可参考:

把桌面上刚下的MySQL复制到/tmp下:cp Desktop/mysql-5.0.20.tar.gz /tmp

进入/tmp目录:cd /tmp

解压并展开:tar zxvf mysql-5.0.20.tar.gz

4、编译安装MySQL:

进入到解压后的mysql目录:

cd mysql-5.0.20

假设我常用用户是xcg1688,则在终端输入下面的命令:

./configure --prefix=/opt/mysql --with-mysqld-user=xcg1688 --with-extra-charsets=all --with-unix-socket-path=/tmp/mysql.sock

--prefix=/opt/mysql 把mysql-5.0.20指定安装到/opt/mysql目录中;

--with-extra-charsets=all 对多语言的支持;

--with-unix-socket-path=/tmp/mysql.sock 这个是指定mysql服务器启动后,联机套接字文件所处的位置和文件名,也就是说,如果mysql服务器成功启动后,就能在/tmp 目录中看到mysql.sock文件。如果看不到,肯定是mysql启动不了。

--with-mysqld-user=xcg1688 这个是让mysql服务器也能让系统中普通用户xcg1688也能启动mysql服务器。用普通用户来启动mysql的好处是:mysql的进程会自己死掉自动退出。当然root用户也可以,不过有时mysql有些进程死了,但不会自动退出,root自己也杀不掉。所以用普通用户就有这样的好处,大多不会出现mysql进程已死,但不会退出的情况;

当您看到“Thank you for choosing MySQL!”时,说明成功。

5.安装:

sudo make

sudo make install

6.配置:

sudo cp /opt/mysql/share/mysql/my-medium.cnf /etc/my.cnf

这是将配置文件拷贝到/etc目录下成为my.cnf,大家可以根据自己的需要选择配置文件(配置文件在 /opt/mysql/share/mysql/目录下,有my-huge.cnf my-medium.cnf my-large.cnf my-small.cnf这些).

运行

sudo /opt/mysql/bin/mysql_install_db

这个命令是创建MySQL的授权表.

sudo chmod 755 /opt/mysql/var     //设置/opt/mysql/var的目录权限为755

sudo chown -R xcg1688:xcg1688 /opt/mysql/var  //如果希望使用xcg1688这个用户来启动mysql的话

sudo /opt/mysql/share/mysql/mysql.server start      //启动mysql服务

sudo chown -R xcg1688:xcg1688 /opt/mysql/      //把/opt/mysql目录归属到xcg1688这个用户下

sudo /opt/mysql/bin/mysqladmin -u root password 123456  //设置root用户的密码为123456

/opt/mysql/bin/mysql -u root -p   //试试看mysql能不能登录。\q退出。

7.设置MySQL的环境变量:

cd//回到你的用户目录。

cp .bashrc .bashrc_bak//备份.bashrc

vi ~/.bashrc

在最后加入:export PATH=/opt/mysql/bin:$PATH:.

然后在终端输入:source ~/.bashrc #使刚修改的起作用

env//查看环境变量

mysql

上面的修改只针对某一用户,你还可以用另外一种办法:在/etc/profile添加PATH路径后,注销一次再echo应该就可以了。

8.设置MYSQL自动启动:

sudo cp /opt/mysql/share/mysql/mysql.server /etc/rc2.d/S20mysql

另外办法:sudo vi/etc/init.d/mysql         //建立服务的shell脚本,在服务中你可看到它。

加入

#!/bin/sh

/opt/mysql/share/mysql/mysql.server start

然后

$sudo chmod 755 /etc/init.d/mysql

$sudo chmod +x /etc/init.d/mysql

最后,到服务中选中它。

9.安全:

重新启动计算机,在终端$下输入mysql能直接进入mysql>下,说明有空用户存在。解决办法:先\q退出,再:

mysql -u root -p

mysql>delete from mysql.user where user='';            #删除空用户,强烈建议。

mysql>flush privileges;                    #刷新权限表,以便可以使更改立即生效

mysql>\q回车退出

结果:再输入mysql,就不能进入了。必须用mysql -u xxxx -p的形式了。

可以用ps -aux │ grep mysql 可以看到。

======================================================

三、Linux_Apache2安装:

======================================================

来源博客:[url]http://blog.csdn.net/xuchenguang/[/url]

编写整理:徐晨光  MSN:[email]xuchenguang@msn.com[/email]

参考资料:[url]http://wiki.ubuntu.org.cn[/url]论坛中的贴子,

以及从互联网“摆渡”出来的资料。

======================================================

1.下载apache,网址:[url]www.apache.org[/url]  文件名:httpd-2.2.0.tar.bz2

2.解压、链接、编译、安装。

cd

cd Desktop

tar -jxvf httpd-2.2.0.tar.bz2

cd httpd-2.2.0

vi INSTALL #这一步不必须,只是获得一些安装信息。

./configure

sudo make

sudo make install

3.启动并测试:

sudo /usr/local/apache2/bin/apachectl start

打开firefox,输入[url]http://localhost[/url],显示It works!证明成功了。

sudo vi /usr/local/apache2/conf/httpd.conf

下面改主目录:

sudo mkdir /var/www             #建立/var/www

DocumentRoot "/var/www"   #修改主目录

    #按上面的改

此时你可以用vi建一个index.html文件,放在/var/www下,测试一下。

Options Indexes FollowSymLinks #把Indexes删除,否则别人可以看到时您网站里的所有文件。

找到DirectoryIndex,大约在166行,改为如下:

DirectoryIndex index.htm index.html index.html.var index.php

4.设置开机自动启动:

sudo vi /etc/init.d/apache2

#!/bin/sh

/usr/local/apache2/bin/apachectl "$1"

sudo chmod 755 /etc/init.d/apache2

sudo update-rc.d apache2 defaults

删除命令:sudo /usr/sbin/update-rc.d -f apache2 remove

5.FAQ:

httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

cd /usr/local/apache2/conf/

sudo cp httpd.conf httpd.conf.bak 备份一下,免得自己改错了。

sudo vi httpd.conf

找到#ServerName [url]www.example.com:80[/url]

把它改为ServerName 127.0.0.1

======================================================

四、PHP5安装:

======================================================

来源博客:解决方法:

原因是没有安装 libtool。-_-!

# apt-get install libtool

======================================================

五、安装phpmyadmin:

======================================================

来源博客:[url]http://blog.csdn.net/xuchenguang/[/url]

编写整理:徐晨光  MSN:[email]xuchenguang@msn.com[/email]

参考资料:来自互联网,用于互联网。

======================================================

1、安装:

到[url]www.phpmyadmin.net[/url]下载phpmyadmin。当前最新稳定版是2.8.0.4,下

sudo tar -jxvf phpMyAdmin-2.8.0.4.tar.bz2

sudo mv phpMyAdmin-2.8.0.4 /var/www/phpmyadmin

测试:http://服务器IP/phpmyadmin/         //出来界面就行了,暂时不要管它出错信息。

2.修改config.inc.php:

sudo cp libraries/config.default.php config.inc.php

sudo vi config.inc.php

找到:#$cfg' target=_blank>[url]http://blog.csdn.net/xuchenguang/[/url]

编写整理:徐晨光  MSN:[email]xuchenguang@msn.com[/email]

参考资料:来自互联网,用于互联网。

======================================================

1.下载PHP,网址:[url]www.php.net[/url]  文件名:php-5.1.2.tar.bz2

apt-get install flex

apt-get install libxml2-dev

apt-get install libtool

2.解压、链接、编译、安装。

cd

cd Desktop

tar -jxvf php-5.1.2.tar.bz2

cd php-5.1.2

vi INSTALL #这一步不必须,只是获得一些安装信息。

./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/opt/mysql --enable-track-vars --with-mbstring --enable-mbstring=all

如果出现如下证明快成功了。

+--------------------------------------------------------------------+

| License:                                                           |

| This software is subject to the PHP License, available in this     |

| distribution in the file LICENSE.  By continuing this installation |

| process, you are bound by the terms of this license agreement.     |

| If you do not agree with the terms of this license, you must abort |

| the installation process at this point.                            |

+--------------------------------------------------------------------+

Thank you for using PHP.

make

make install

sudo cp php.ini-dist /usr/local/lib/php.ini

sudo vi /usr/local/apache2/conf/httpd.conf

找到:LoadModule php5_module        modules/libphp5.so ###########

改为:LoadModule php5_module        /usr/local/apache2/modules/libphp5.so  #####注意,这个文件不存在^^^^^^^

3.php与apache整合

大约在306行,找到

AddType application/x-compress .Z

AddType application/x-gzip .gz .tgz

在它后面添加(注意点前有空格)

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

4.测试php

sudo vi /var/www/index.php

添加 phpinfo();?>

sudo /usr/local/apache2/bin/apachectl start

重启计算机,然后找另一台计算机,打开浏览器,输入

http://服务器IP/index.php   #如:我输入的是[url]http://192.161.27.3:index.php[/url]

可以看到关于php的信息,证明php安装成功。

5.结束语:强烈建议大家在安装软件时用源码安装,虽然很麻烦,但是你知道你都做了什么,知道你把软件包安装到了哪,还有出了问题大家不要着急,先看出错提示,查看出错信息,利用自己所学linxu知识判断是哪出错了,就比如我在安装php时,我想先安装apache,然后php,最后mysql,当我在安装php时加了参数--with-mysql=/usr/local/mysql,在安装时就会出错,还有,在安装php时它还提示我的 libxm12的版本太低,我的是RD9.0,内核2.4.20-8,我用rpm -qa │ grep libxm12时,版本才1.,然后下载了libxml2-2.6.10.tar.gz,安装后再安装php就成功了,。

6.FAQ:

6.1 /configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --enable-track-vars 时出错:

checking lex output file root... ./configure: line 2418: lex: command not found

configure: error: cannot find output from lex; giving up

解决方法:

安装 flex

# apt-get install flex

6.2 重新config,出现以下错误:

checking libxml2 install dir... no

configure:error:xml2-config not found. Please check your libxml2 installation.

解决方法:

安装 libxml2-dev

# apt-get install libxml2-dev

6.3 make install 的时候出现错误:

chmod: cannot access `/usr/local/apache2/modules/libphp5.so': No such file or directory  apxs:Error: Command failed with rc=65536

解决方法:

原因是没有安装 libtool。-_-!

# apt-get install libtool

======================================================

五、安装phpmyadmin:

======================================================

来源博客:[url]http://blog.csdn.net/xuchenguang/[/url]

编写整理:徐晨光  MSN:[email]xuchenguang@msn.com[/email]

参考资料:来自互联网,用于互联网。

======================================================

1、安装:

到[url]www.phpmyadmin.net[/url]下载phpmyadmin。当前最新稳定版是2.8.0.4,下

sudo tar -jxvf phpMyAdmin-2.8.0.4.tar.bz2

sudo mv phpMyAdmin-2.8.0.4 /var/www/phpmyadmin

测试:http://服务器IP/phpmyadmin/         //出来界面就行了,暂时不要管它出错信息。

2.修改config.inc.php:

sudo cp libraries/config.default.php config.inc.php

sudo vi config.inc.php

找到:#$cfg['Servers'][$i]['socket'] = '';

把前面的#去掉,改为:$cfg['Servers'][$i]['socket'] = '/tmp/mysql.sock';

3.改密码:

终端输入:mysql -u root -p

UPDATE mysql.user SET Password = OLD_PASSWORD('123456') WHERE Host = 'localhost' AND User = 'root';

原因:我们修改过MYSQL的root的密码,因为MYSQL的password的散列加密方法和以前有了变化,所以出了这个问题 这个改变在MYSQL4.1版以上才有原先的方式变成了OLD_PASSWORD,我们重新更新一下密码就好了。

4.php与mysql、gb整合:

sudo apt-get install libapache2-mod-auth-mysql

sudo apt-get install php5-mysql

sudo apt-get install php5-gd

配置php.ini:

1)因对GD的支持所以要改一下,顺便把mysql.so也挂上:

sudo vi /etc/php5/apache2/php.ini

在文件最后找到代码:   #extension=mysql.so

#extension=gd.so

检查一下,前面如果有注释#,去掉它保存就好了。如果你要改什么上传文件大小、使用内存的大小,可以一并改了。

2)找到代码:mysql.default_socket =

改成:     mysql.default_socket = '/tmp/mysql.sock'

5.重新启动计算机(一定要做)。

打开浏览器测试:[url]http://localhost/phpmyadmin/[/url]

用户名输入root,再输入刚改的密码,OK。

6.FAQ:

配置不当可能进不去,请检查第5步中的#号去了没有。另外,请检查my.cnf和php.ini文件,具体可查找(sudo find / -name 文件),查找时注意权限,一般要加sudo。my.cnf文件一般在/etc/my.cnf,php.ini一般在/etc/php.ini,确保两个文件里的 socket = /tmp/mysql.sock 都相同。

四、Ubuntu Linux下Pure-FTPD安装:

======================================================

来源博客:[url]http://blog.csdn.net/xuchenguang/[/url]

编写整理:徐晨光  MSN:[email]xuchenguang@msn.com[/email]

参考资料:[url]http://wiki.ubuntu.org.cn[/url]论坛中的贴子,

以及从互联网“摆渡”出来的资料。

======================================================

1.准备工作:请先装好Ubuntu、MySQL5、Apache2、PHP5,具体请看我的博客。

下载:[url]ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.21.tar.gz[/url]

假设下载到桌面上。建议你在用户文件夹下建一个down,下载的软件放到那里去。不过这次为了说明方便,就先放到桌面上吧。

2、打开终端

$cd Desktop

$tar zxvf pure-ftpd-1.0.21.tar.gz

$cd pure-ftpd-1.0.21

$sudo cp /opt/mysql/lib/mysql/*.* /usr/lib

$./configure --with-mysql=/opt/mysql --with-rfc2640 --with-altlog

$sudo make           //编译

$sudo make install   //安装

3.拷贝两个基本的配置文件:

对于 pure-ftpd来说,如果用MySQL认证,那么最重要的2个文件分别是 pure-ftpd.conf 和 pureftpd-mysql.conf,用源码安装,这2个文件是在安装的目标上找不到的。他在我们的源码里,只是个样本。

我们把他们2个复制到 /etc 目录下,你也可复制到别处,但是在配置时又有所变动哦

$sudo cp pureftpd-mysql.conf  /etc

$sudo cp configuration-file/pure-ftpd.conf /etc

4.修改 /etc/pure-ftpd.conf

$sudo vi /etc/pure-ftpd.conf

这里列出一部分重要的,注意前面有#号的,如果想启用请去掉。

ChrootEveryone     yes # 锁定用户在主目录中,你不会希望,a1用户能进到a2目录里吧

MaxClientsNumber   200         # 最大可连接的用户数,自己决定吧

MaxClientsPerIP     8           # 来自一个IP的最大连接数,知道有的站点,为什么只能一个线程了吧

MaxIdleTime           # 客户端连接后的最大闲置时间

MySQLConfigFile   /etc/pureftpd-mysql.conf   # 关键部分,去#号,你整合mysql就靠它了

AnonymousCanCreateDirs      yes  # 允许匿名用户创建新目录?

MaxLoad             180         #系统连接数超此值,禁止匿名下载

AntiWarez     yes     #不接受所有者为 "ftp" 的文件的下载。例如:那些匿名用户上传后未被本地管理员验证的文件。

AllowUserFXP        yes

AllowAnonymousFXP   yes

ProhibitDotFilesWrite  yes # 禁止修改隐藏文件

ProhibitDotFilesRead yes # 禁止读取隐藏文件,这2项建议用yes,不然你不小心把某个.开头的(隐藏文件)弄没了,或改了,可能你的用户会有问题哦。

CreateHomeDir       yes         # 自动建立用户主目录,根据数据里的记录,自动建立用户目录

加入:

FileSystemCharset    UTF-8  #服务器端UTF-8

ClientCharset        GB2312   #客户端见到的是GB2312

根据自己的要求来设定,但注意一定要把注掉的MySQLConfigFile打开,还有注掉的CreateHomeDir打开。

SyslogFacility ftp   #缺省"ftp","none" 将禁止日志。

AltLog w3c:/var/log/pureftpd.log  #把前面的#去掉。使用标准的W3C格式创建一个额外的日志文件。(与大部分的商业日志分析器兼容)

5、修改/etc/pureftpd-mysql.conf

$sudo vi /etc/pureftpd-mysql.conf

这里列出一部分重要的,注意前面有#号的,如果想起用请去掉。

# Optional : MySQL server name or IP. Don't define this for unix sockets.

MYSQLServer     localhost     #SQL运行在本机,当然是 localhost了

# Optional : MySQL port. Don't define this if a local unix socket is used.

MYSQLPort       3306          #原来是注销掉的我们打开它,其实不打开也行,系统默认就OK

# Mandatory : user to bind the server as.

MYSQLUser       root             #这里的 MYSQLUser和MYSQLPassword是 pureftpd查询帐号数据库用的,我就用root得了,你也可指定,但是必须在 mysql.user表里有指定

MYSQLPassword   123456

MYSQLDatabase    ftpusers       #这个是我们要在MySQL里建立的一个认证数据库

配置完成。

6、建立ftp用户目录

$sudo groupadd ftpgroup -g 10000  #建立一个ftpgroup组,gid为10000,这里的10000要记住哦,等下要用到。

$sudo useradd ftpuser -g ftpgroup -u 10000  #建立一个ftpuser用户,属于ftpgroup组,uid为10000。

$sudo mkdir /var/ftpdir

$sudo chown -R  ftpuser.ftpgroup /var/ftpdir    #把 /var/ftpdir目录及同以下的目录,设置所属用户和群组。

7.pureftp管理:

Pureftp的管理软件很多,我们在这里选择这个:

下载地址[url]http://machiel.generaal.net/files/pureftpd/ftp_v2.1.tar.gz[/url]

假设下到桌面,

$cd

$cd Desktop

$sudo tar zxvf ftp_v2.1.tar.gz        #解压展开,桌面上多了一个文件夹,名为ftp

$sudo mv ftp /var/www/ftp             #把ftp文件夹移动到Apache服务器主目录,本文中是/var/www。

下面配置安装,如果有什么问题,请[url]http://localhost/phpmyadmin/[/url],把数据库ftpusers删除,再重新下面的操作。

打开浏览器,输入[url]http://localhost/ftp/install.php[/url]

step1)按step2        #这一步如果出现config.php权限不够的提示,用chmod开权限。

step2)按“New installation,”链接;

step3)"Hostname"中填写localhost,“Username”填写root,Password填写123456,按connect,全部OK了按"continue”。又出来一个对话框,除了上面的三项要一模一样外,“Database”要填写"ftpusers",按 refresh,全部OK了按“step4”。有问题修正后按"refresh"验证。

step4)语言选中文,FTP Address改成你的IP:21,“Default user ID”和"Default group ID"都是10000,要想流量控制和上传下载比率,把最后两项选中。按"Save"按钮,保存到config.php中。按step5。

step5)管理员密码,改一下,按"step6".出来一个选择,要你选择一个有足够权限的用户,用来使本次的管理员密码更改生效,我选root。

step6)没什么好说的,按step7。完成了。

$sudo vi /var/www/ftp/index.php

找到下面这行(大约在742行),把前面的//去了。

//        echo ("\n");

找到下面这行(大约在745行),把前面加上//

echo ("\n");

找到两处(214行,258行).md5($_POST['password_box'])."'

全都改成.$_POST['password_box']."'

打开浏览器,输入[url]http://localhost/ftp/[/url]

新建个帐号,名a密码a,主目录/var/ftpdir/a(它怎么会叫家目录,都是home惹得祸!)。有兴趣你可以看一下,a目录是不存在的,用ftp登录一下,a就自动建好了。

8.运行测试:

我们得要把 pureftp运行起来再说,我们可以利用 pureftp源码解压目录/configuration-file/pure-config.pl这个脚本来控制,注意,这是用perl语言写的。如果没有安装perl就安装一个吧。输入:

$cd

$cd Desktop

$cd pure-ftpd-1.0.21          #先进入你解压的文件夹

$sudo chmod u+x configuration-file/pure-config.pl

$sudo cp configuration-file/pure-config.pl  /etc   #放这里好找

$sudo /etc/pure-config.pl  /etc/pure-ftpd.conf          #运行pureftpd服务器

看到如果下信息,就说明成功了

Running: /usr/local/sbin/pure-ftpd -A -c200 -B -C8 -D -fftp -H -I15 -lmysql:/etc/pureftpd-mysql.conf -L2000:8 -M -m100 -s -U133:022 -u100 -x -X -j -k99 -Z -8UTF-8 -9UTF-8

接着:

$ftp localhost

Connected to localhost.localdomain.

220---------- Welcome to Pure-FTPd ----------

220-You are user number 1 of 200 allowed.

220-Local time is now 15:03. Server port: 21.

220-IPv6 connections are also welcome on this server.

220 You will be disconnected after 15 minutes of inactivity.

Name (localhost:xcg1688): a      #用户名

331 User a OK. Password required

Password:                        #密码

230-User a has group access to:  ftpgroup

230 OK. Current restricted directory is /

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> quit

221-Goodbye. You uploaded 0 and downloaded 0 kbytes.

221 Logout.

9.设置pure-ftpd为系统服务:

$sudo vi /etc/rc2.d/S20pure-ftpd

内容:

#!/bin/sh

echo ""

/etc/pure-config.pl /etc/pure-ftpd.conf

然后:

$sudo chmod 755 /etc/rc2.d/S20pure-ftpd

重启系统可生效,或者执行以下命令立即生效,sudo /etc/rc2.d/S20pure-ftpd

10.匿名上传下载:

$sudo mkdir /var/ftpdir/anonymous      #建立一个目录,名字随意,下面要用,记住统一即可。

$sudo useradd ftp -g ftpgroup     #添加一个用户“ftp”必须是这个名,它与其它ftp用户都从属于上面的ftpgroup。

$sudo usermod -d /var/ftpdir/anonymous ftp    #更改“ftp”这个用户的主目录。

$sudo chmod +770 /var/ftpdir/anonymous        #使具有匿名上层目录的用户可以删除匿名目录anonymous内的文件。

$sudo chown ftp:ftpgroup /var/ftpdir/anonymous

修改 /etc/pure-ftpd.conf终端:$sudo vi /etc/pure-ftpd.conf

找到: AnonymousCantUpload no,不接受匿名用户上传新文件( no = 允许上传)

还是要重启才好用。

其它:

ftp客户端可选gftp,在终端输入:sudo apt-get install gftp

********************************************************************************

********************************************************************************

********************************************************************************

********************************************************************************

********************************************************************************

五、Pure-FTPD用户权限分配策略:

======================================================

来源博客:[url]http://blog.csdn.net/xuchenguang/[/url]

编写整理:徐晨光  MSN:[email]xuchenguang@msn.com[/email]

参考资料:[url]http://wiki.ubuntu.org.cn[/url]论坛中的贴子,

以及从互联网“摆渡”出来的资料。

======================================================

按照前面的设置好后,权限情况是:注册用户各自对自已的文件夹有全权,互相不能看。匿名用户对anonymous文件夹有上传权限、建文件夹权限,没有删除权限。在实际工作中,这种分配方案不能满足需求,下面来改进一下:

1,需求分析:

ftpmanager:对ftp内所有的文件有全权。

注册用户:权限不变,仍然对各自的文件有全权,相互隔离。

匿名用户:对anonymous内文件有下载权限,对anonymous/upload下有上传、建目录权限,没有删除权限。

2、实现办法:

[url]http://localhost/ftp/index.php[/url]

新建用户ftpmanager,输入密码,更改主目录为/var/ftpdir。其它的上传下载速率也改一下吧。

$sudo chmod +755 /var/ftpdir/anonymous  #匿名目录写入权限限制在属主(也叫所有者)。

$sudo chown ftpuser:ftpgroup /var/ftpdir/anonymous   #匿名目录属主改为ftpuser。

$sudo usermod -d /var/ftpdir/anonymous ftp #匿名用户主目录在anonymous,如果你是一步一步按前面来的,这一步不必做。

$sudo mkdir /var/ftpdir/anonymous/upload

$sudo chmod +770 /var/ftpdir/anonymous/upload  #upload权限:属主与群组全权

$sudo chown ftp:ftpgroup /var/ftpdir/anonymous/upload   #upload目录属主改为ftp(即匿名帐号)。

六.安全:

1.关闭远程连接

首先,应该关闭3306端口,这是MySQL的默认监听端口。由于此处MySQL只服务于本地脚本,所以不需要远程连接。尽管MySQL内建的安全机制很严格,但监听一个TCP端口仍然是危险的行为,因为如果MySQL程序本身有问题,那么未授权的访问完全可以绕过MySQL的内建安全机制。关闭网络监听的方法很简单,在/chroot/mysql/etc/my.cnf文件中的[mysqld]部分,去掉#skip-networking前面的“#”即可。

注意:由于此项改动,/var/www/ftp/config.php 中的DBHost一定要改成localhost,而不能是127.0.0.1。否则报错。

关闭了网络,本地程序如何连接MySQL数据库呢?本地程序可以通过mysql.sock来连接,速度比网络连接更快。后文将提到关于mysql.sock的具体情况。

MySQL的备份通常使用SSH来执行!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值