您的位置:首页 > 运维架构 > Linux

linux 下安装vsftpd 和设置上传权限,适用于VPS等场合

2014-02-24 15:45 417 查看
自己临时测试使用,目的 上传网页文件到apache的网页目录,具有执行和写入权限,看到其他文章写的怎么怎么配置vsftpd,对于初学者一般配置都是为了上传网页到服务器,那简单的配置越快越好,开始测试代码

PS:本人喜欢折腾VPS之类的,都是喜欢最新的配置环境。

测试环境 centos 2.6.32-431.el6.x86_64 版本

先配置本地yum源:如果不知道怎么配置本地源,请猛点这里!

安装软件:

安装vsftp客户端 [root@localhost sv005-mongodb]# yum install ftp

安装vsftpd服务端 [root@localhost sv005-mongodb]# yum install vsftpd

网站路径

本地apache默认目录是 /usr/local/apache2/htdocs

配置ftp

先确认下安装上了没,可以使用 

[root@localhost sv005-mongodb]# service vsftpd restart

Shutting down vsftpd:                                      [  OK  ]

Starting vsftpd for vsftpd:                                [  OK  ]

或者使用命令

[root@localhost sv005-mongodb]# chkconfig --list vsftpd

vsftpd          0:off   1:off   2:off   3:off   4:off   5:off   6:off

设置vsftpd自动启动

[root@localhost sv005-mongodb]# chkconfig --level 345 vsftpd on

[root@localhost sv005-mongodb]# chkconfig --list vsftpd

vsftpd          0:off   1:off   2:off   3:on    4:on    5:on    6:off

现在修改配置文件

备份一份

cp /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf.bak

修改配置文件vsftpd.conf

vi /etc/vsftpd/vsftpd.conf

例如找 找到相关参数  anonymous_enable 配置项 可以在vi命令行模式下输入 

/anonymous_enable

按一次回车,如果继续查询相同的可以按键盘 N按键

下面的参数修改

anonymous_enable=NO

local_umask=000

chroot_local_user=NO

chroot_list_enable=YES

# (default follows)

chroot_list_file=/etc/vsftpd/chroot_list

保存后重新启动

增加一个vsftp的本地用户 w1

useradd -n -d /usr/local/apache2/htdocs -g root -M -s /sbin/nologin w1

useradd命令的常用选项如下:

-c comment:用户全名或描述。

-d home-dir:指定用户主目录。

-e date:禁用账户的日期,格式为:YYYY-MM-DD。

-f days:口令过期后,账户禁用前的天数。

-g group-name:用户所属主组群的组群名称或GID。

-G group-list:用户所属的附属组群列表,多个项目用逗号分隔。

-m:若主目录不存在则创建它。

-M:不创建用户主目录。

-n:不要为用户创建用户私人组群。

-r:创建UID小于500的不带主目录的系统账户。

-p:加密的口令。

-s:指定用户登录 Shell,默认为 /bin/bash。

-u UID:指定用户的 UID,它必须是唯一的,且大于499。

配置文件/etc/vsftpd/chroot_list

vi /etc/vsftpd/chroot_list 

增加一行 w1

保存就可以测试登录了

测试代码

<?php

$fp=fopen("tmp.txt","wb");

fwrite($fp,"testASDFSDF\r\n");

fclose($fp);

echo fread(fopen("tmp.txt","rb"),filesize("tmp.txt"));

?>

如果正常那么就输出了

testASDFSDF

然后检验下linux下面的权限

[root@localhost t1]# ll

-rw-rw-rw- 1 www1   root    461 Feb 24 07:51 T-4.php

上传是666权限,到此测试和检验完成

网页运行权限root

我们建立vsftp帐号的时候指定了用户组是root组

权限说明是     拥有者-用户组-其他

默认如果都是root的话只要700权限

如果vsftp上传那么用户是w1 用户组我们指定到root组

那么只要 770权限就可以运行起来php

如果还有其他写的权限,例如php要写入文件之类的

那就666

折中取权限是666 权限 vsftp的umask是000

自己虚拟用户测试成功,不过还是看人家现成的,都千篇一律,简单的会了,虚拟用户的配置可以尝试尝试

还有一个关于虚拟用户的配置http://www.cnblogs.com/xiongpq/p/3384759.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php linux ftp