Osheep

时光不回头,当下最重要。

node项目部署——阿里云centos部署ftp

环境:

1、Centos 7.3

2、阿里云专有网络

安装

yum install -y vsftpd   // 安装

systemctl start vsftpd.service   // 启动vsftpd服务

ftp权限配置:

vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件:

1、vsftpd.conf // 主配置文件

2、ftpusers // 禁止访问 FTP 服务器的用户列表

3、user_list // 用户访问控制

这里只做简单配置,禁止切换目录。编辑 /etc/vsftpd/vsftpd.conf,找到下面两处配置并修改:

anonymous_enable=NO     (改为NO)          // 禁用匿名用户 

chroot_local_user=YES   (改为YES)         // 禁止切换根目录

切换目录权限配置:

chroot_list_enable=YES/NO(NO)

设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。

chroot_list_file=/etc/vsftpd/chroot_list

用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。

chroot_local_user=YES/NO(NO)

用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。

通过搭配能实现以下几种效果:


1、当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。


2、当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。


3、当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。


4、当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。

故上面配置属于第三种情况,所有用户不能切换到其他目录。

如果使用情况1或者情况2时,要在/etc/vsftpd下新建chroot_list文件,配置相关用户。

重启服务:

systemctl restart vsftpd.service
创建一个用户 ftpuser
useradd ftpuser

限制用户 ftpuser只能通过 FTP 访问服务器,而不能直接登录服务器:
usermod -s /sbin/nologin ftpuser

上面两步可以合二为一:

useradd ftpuser -s /sbin/nologin

为用户 ftpuser 设置密码

方法一:
echo "keenjaan" | passwd ftpuser --stdin

方法二:
passwd ftpuser
输入两遍密码即可

2.5 为用户分配主目录

在/var中创建相关的目录

mkdir -p /var/ftp/pub

配置主目录即目录权限配置:

/var/ftp            // 为主目录, 该目录只能读,不能写和执行

/var/ftp/pub        // 文件具有读、写、执行权限

设置访问权限

chmod a-w /var/ftp && chmod 777 -R /var/ftp/pub

对ftp文件:有读取权限,没有写入权限。

对pub文件及其所有子文件:最高权限,读写,执行。

关于chmod命令:参考这个连接传送门

chmod [-cfvR] [--help] [--version] mode file...

参数 :
  mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中
u 表示该文件的拥有者[user],
g 表示与该文件的拥有者属于组(group),
o 表示其他用户[other],
a 表示这三者皆是[all]。(常用)

+ 表示增加权限、(常用)
- 表示取消权限、(常用)
= 表示唯一设定权限。

r 表示有可读取的权限,
w 表示有可写入的权限,
x 表示有可执行的权限,
X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更  (常用)
--help : 显示帮助
--version : 显示版本

r=4,
w=2,
x=1
rwx属性则4+2+1=7;
rw-属性则4+2=6;
r-x属性则4+1=5。

设置为用户的主目录:

usermod -d /var/ftp ftpuser

在阿里云安全组中开放21端口号。

使用FileZilla登录到ftp报错,553,最终设置FileZilla传输设置里传输模式为主动,就能正常传输了。

到此ftp配置完成。这里有篇关于ftp配置文章很详细,传送门

点赞