1.查看是否安装vsftp
rpm -qa | grep vsftpd
如果出现vsftpd-2.0.5-21.el5,说明已经安装 vsftp
安装vsftp
yum -y install vsftpd
2.测试 是否安装成功 (ip 改成自己啊,不要用俺的此次登录为匿名登录 user: anonymous 密码为空 如果成功登录会有下面内容 这说明vsftpd安装成功)
[root@localhost ~]#systemctl start vsftpd
为 vsftpd 启动 vsftpd:[确定]
rpm -qa | grep vsftpd
如果出现vsftpd-2.0.5-21.el5,说明已经安装 vsftp
安装vsftp
yum -y install vsftpd
2.测试 是否安装成功 (ip 改成自己啊,不要用俺的此次登录为匿名登录 user: anonymous 密码为空 如果成功登录会有下面内容 这说明vsftpd安装成功)
[root@localhost ~]#systemctl start vsftpd
为 vsftpd 启动 vsftpd:[确定]
[root@localhost ~]#systemctl enable
vsftpd
开启自启动
[root@localhost ~]#systemctl is-enabled vsftpd
是否开启自启动
3,配置vsftpd
# whereis vsftpd
vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz
4、配置vsftp服务器
配置文件说明:
/etc/vsftpd/vsftpd.conf vsftpd的核心配置文件
/etc/vsftpd/ftpusers 用于指定哪些用户不能访问FTP服务器
/etc/vsftpd/user_list 指定允许使用vsftpd的用户列表文件
/etc/vsftpd/vsftpd_conf_migrate.sh 是vsftpd操作的一些变量和设置脚本
/var/ftp/ 默认情况下匿名用户的根目录
配置文件说明:
/etc/vsftpd/vsftpd.conf vsftpd的核心配置文件
/etc/vsftpd/ftpusers 用于指定哪些用户不能访问FTP服务器
/etc/vsftpd/user_list 指定允许使用vsftpd的用户列表文件
/etc/vsftpd/vsftpd_conf_migrate.sh 是vsftpd操作的一些变量和设置脚本
/var/ftp/ 默认情况下匿名用户的根目录
配置/etc/vsftpd/vsftpd.conf
配置前先备份
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.confbak
配置前先备份
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.confbak
按需求配置ftp服务器一:
上传和下载文件需要设置成允许匿名用户登录并且需要将允许匿名用户上传功能
vi vsftpd.conf
##允许匿名用户访问
anonymous_enable=YES
##允许匿名用户上传文件并可以创建目录
anon_upload_enable=YES
anon_mkdir_write_enable=YES
service vsftpd restart
chown ftp.ftp /var/ftp/pub/
完成之后可以创建文件夹
vi vsftpd.conf
##允许匿名用户访问
anonymous_enable=YES
##允许匿名用户上传文件并可以创建目录
anon_upload_enable=YES
anon_mkdir_write_enable=YES
service vsftpd restart
chown ftp.ftp /var/ftp/pub/
完成之后可以创建文件夹
但是要重命名或者删除文件夹的话
![](https://i-blog.csdnimg.cn/blog_migrate/aaf364c96a3d7001e2c3bc171cbf8310.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8b4782dc398c5c71b31eea8bc7717187.png)
开启重命名和删除
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
重启服务
按需求配置ftp服务器二:
公司现有一台FTP 和WEB 服务器,FTP 的功能主要用于维护公司的网站内容,包括上传文件、创建目录、更新网页等等。team1 和team2帐号进行管理。
要求:仅允许team1 和team2 帐号登录FTP 服务器,但不能登录本地系统,并将这两个帐号的根目录限制为/var/www/html,不能进入该目录以外的任何目录。
例如www web服务器根目录: /var/www/html
只允许:team1和team2两用户 可以上传。 vsftp禁止匿名。
例如www web服务器根目录: /var/www/html
只允许:team1和team2两用户 可以上传。 vsftp禁止匿名。
1.建立维护网站内容的ftp 帐号team1 和team2 并禁止本地登录,然后设置其密码
useradd -s /sbin/nologin team1 ---添加用户,用户不能登录
echo "123456" | passwd --stdin team1 ---设置密码
2.配置vsftpd.conf 主配置文件并作相应修改
vi vsftpd.conf
#anonymous_enable=YES 改为
anonymous_enable=NO 禁止匿名用户登录
local_enable=YES 允许本地用户登录
chroot_local_user=YES
local_root=/var/www/html ------设置本地用户的根目录为/var/www/html
chroot_list_enable=YES ------激chroot 功能
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list ---设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名
保存退出
3.建立/etc/vsftpd/chroot_list 文件,添加team1 和team2 帐号
touch /etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list
team1
team2
:wq
4.重启vsftpd 服务使配置生效
systemctl restart vsftpd
5.修改本地权限
mkdir -p /var/www/html/
chmod -R o+w /var/www/html/
ll -d /var/www/html/
6.测试
window ftp://192.168.0.198
输入用户名 密码就可以使用ftp上传下载等
useradd -s /sbin/nologin team1 ---添加用户,用户不能登录
echo "123456" | passwd --stdin team1 ---设置密码
2.配置vsftpd.conf 主配置文件并作相应修改
vi vsftpd.conf
#anonymous_enable=YES 改为
anonymous_enable=NO 禁止匿名用户登录
local_enable=YES 允许本地用户登录
chroot_local_user=YES
local_root=/var/www/html ------设置本地用户的根目录为/var/www/html
chroot_list_enable=YES ------激chroot 功能
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list ---设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名
保存退出
3.建立/etc/vsftpd/chroot_list 文件,添加team1 和team2 帐号
touch /etc/vsftpd/chroot_list
vim /etc/vsftpd/chroot_list
team1
team2
:wq
4.重启vsftpd 服务使配置生效
systemctl restart vsftpd
5.修改本地权限
mkdir -p /var/www/html/
chmod -R o+w /var/www/html/
ll -d /var/www/html/
6.测试
window ftp://192.168.0.198
输入用户名 密码就可以使用ftp上传下载等
php 使用ftp上传下载文件
<?php
$path = 'asdasd/asd';
$bendiPath = 'C:\Users\DIY\Desktop\angular.txt';
$conn = ftp_connect("192.168.0.198") or die("Could not connect");
ftp_login($conn,"kaka","123123");
//利用ftp创建目录
make_directory($conn,$path);
//利用ftp选择进入目录
ftp_chdir($conn,$path);
//开始上传 上传到了 ftp根目录下 asdasd/asd/qwer.txt
if(ftp_put($conn, 'qwer.txt', $bendiPath, FTP_ASCII)){
echo '上传成功';
}
//ftp 下载
if(ftp_get($conn, 'C:\Users\DIY\Desktop\qwer.txt', 'qwer.txt', FTP_ASCII)){
echo '下载成功';
}
ftp_close($conn);
//注意上传端的ftp权限设置
/**
* 创建目录
* @param $ftp_stream
* @param $dir
* @return bool|string
*/
function make_directory($ftp_stream, $dir){
// 如果目录已经存在或者可以立即创建返回true
if (ftp_is_dir($ftp_stream, $dir) || @ftp_mkdir($ftp_stream, $dir)) return true;
// 否则,递归地尝试创建目录
if (!make_directory($ftp_stream, dirname($dir))) return false;
// 创建目录的最后一步
return ftp_mkdir($ftp_stream, $dir);
}
/**
* 目录是否存在
* @param $ftp_stream
* @param $dir
* @return bool
*/
function ftp_is_dir($ftp_stream, $dir){
// 获取当前目录
$original_directory = ftp_pwd($ftp_stream);
// 测试是否可以将目录更改为$dir
// 如果$dir不是一个文件或一个目录,则会抑制错误
if ( @ftp_chdir( $ftp_stream, $dir ) ) {
// 如果是一个目录,那么将目录更改回原来的目录
ftp_chdir( $ftp_stream, $original_directory );
return true;
} else {
return false;
}
}