Centos 7 install vsftpd
安装
配置
1
|
vim /etc/vsftpd/vsftpd.conf
|
修改配置项
1
2
3
4
5
6
7
8
9
10
|
# 是否允许匿名访问
anonymous_enable=NO
# 是否限制所有用户不能切换ftp主目录
chroot_local_user=YES
# 使用限制列表
chroot_list_enable=YES
# 在centos7默认没有chroot_list文件,新建一个即可
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
|
注意事项
1
2
3
4
5
6
7
8
|
#
chroot_local_user=YES
# 下面两个是同时使用的
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
# 限制列表位置,这个文件在centos7默认没有的,新建一个空文件
# 如果 chroot_local_user=YES ,则chroot_list文件中填写的就是允许切换目录的用户
|
启动 ftp
开机自启动: chkconfig vsftpd on
(报错就再执行一遍)
关闭防火墙或者开启防火墙端口
1
|
iptables -I INPUT -p tcp --dport 21 -j ACCEPT // 防火墙 开启21端口
|
可选配置,修改默认21端口号,修改以下2处配置
vi /etc/vsftpd/vsftpd.conf
在末尾加上下面的:
1
2
3
4
5
6
7
|
# 这个就是修改后的端口号
listen_port=1021
pasv_enable=YES
#这2个是开启主动模式协议端口范围,记得华为云安全组也要加上
pasv_min_port=40000
pasv_max_port=40003
pasv_promiscuous=YES
|
vi /etc/services
找到下面2处,把21修改即可
1
2
|
ftp 21/tcp
ftp 21/tcp
|
新建ftp账号
1
2
3
4
5
6
7
|
# -d 是ftp指定目录,
# -s 后面是不允许此用户登录服务器,只能在ftp模式下访问
# dev 是用户名
useradd -d /home/ftp/dev -s /sbin/nologin dev
# 设置用户密码
passwd dev
|
(userdel ilee) // 删除 用户命令
赋权
1
2
3
4
|
# 修改目录所属用户组
chown -R dev.dev /home/ftp/dev
# 修改用户权限 可读可写可执行
chmod 777 /home/ftp/dev
|
设置ftp允许上传权限
1
2
3
4
|
#
setsebool -P tftp_home_dir on
setsebool allow_ftpd_full_access on
|
重启下vsftpd
1
|
systemctl restart vsftpd
|
相关命令
1
2
3
|
yum install -y vsftpd // 安装 vsftpd
cd /etc/vsftpd // 切换到 vsftpd 配置目录
vim vsftpd.config // 打开配置文件
|
1
2
3
4
5
6
7
|
anonymous_enable=NO
chroot_local_user=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list(这个文件在centos7默认没有的,新建一个)
allow_writeable_chroot=YES
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
systemctl start vsftpd // 重启ftp
chkconfig vsftpd on // 开机自启动
iptables -I INPUT -p tcp --dport 21 -j ACCEPT // 防火墙 开启21端口
useradd -d /home/www/dev.rangolee.top -s /sbin/nologin ilee // 创建用户 ilee 并制定 home 目录 并且 不允许登录服务器
passwd ilee // 设置密码
chown -R ilee.ilee /home/www/dev.rangolee.top // 改归属
chmod 777 /home/www/dev.rangolee.top // 改权限
setsebool -P tftp_home_dir on
setsebool allow_ftpd_full_access on
systemctl restart vsftpd
ps -ef | grep ftp
cat /etc/passwd
cat /etc/passwd-
vim /etc/vsftpd/vsftpd.conf
cd /etc/vsftpd/
mkdir userconfig
cd userconfig/
vi ilee
systemctl stop vsftpd
systemctl restart vsftpd
vim /etc/selinux/config
selinux=1
reboot // 需要重启才能
systemctl restart vsftpd
setsebool allow_ftpd_full_access on
setsebool -P tftp_home_dir on
setenforce 0
sestatus -v
systemctl restart vsftpd
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
getsebool -a | grep ftp
|
问题&答案
1
2
3
|
FTP 550 Failed to change directory
Entering Passive mode // 不使用 Passive mode 登录 ftp 可解决
|