搭建企业自有FTP服务器
一、Vsftpd安装
OS: Centos 8
# 安装
yum -y install vsftpd
#
基本信息:
ftp服务的基本信息
软件安装包: vsftpd
默认发布目录: /var/ftp
协议接口: 21/tcp
服务配置文件: /etc/vsftpd/vsftpd.conf
报错id解析:
500 ##文件系统权限过大
530 ##用户认证失败
550 ##服务本身功能未开放
553 ##本地文件系统权限过小
原文链接:https://blog.csdn.net/qq_45089570/article/details/122398148
二、vsftp创建、查看、启动、停止
- 相关命令
shell
# 启动
systemctl start vsftpd
# 设置自启动
systemctl enable vsftpd
systemctl daemon-reload
- 防火墙开启21端口
shell
# 开启服务器21/20端口
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
特别说明:
如果已经...
三、vsftp配置
修改ftp的配置文件
# 修改配置
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf-bak
vim /etc/vsftpd/vsftpd.conf
# 启用(YES)或禁止(NO)匿名用户, 一般设置为NO
anonymouse enable=NO
# 设置home目录
local_umask=077
local_root=/var/www/html
# 修改配置, ipv4和ipv6的监听不能同时开启, 注意请关闭 listen_ipv6=NO
listen=YES
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=50100
pasv_address=43.131.252.100
# 设置写
allow_writeable_chroot=YES
# 注意放开防火墙设置
firewall-cmd --zone=public --add-port=50000-50100/tcp --permanent
firewall-cmd --reload
创建ftp用户组和用户
# 创建用户组
groupadd ftpgroup
# 创建用户ftpapache (用于apache,PHP应用)
useradd -g ftpgroup -d /var/www/html -s /sbin/nologin ftpapache
# 设置用户密码
passwd ftpapache
# 设置用户Home目录所属组
chgrp ftpgroup /var/www/html
#设置目录权限: 为了让 ftapache 用户能够在其家目录下创建文件和目录,同时保持 root 用户的权限不变,你需要设置适当的权限。将目录权限设置为 2775,这将允许组成员创建文件和目录,同时保持 root 的权限不变
chmod 2775 /var/www/html
# 将root用户加入到 ftpgroup 组中
gpasswd -a root ftpgroup
# 允许root账户登录ftp。
修改/etc/vsftpd/user_list和/etc/vsftpd/ftpusers两个设置文件脚本,将root账户前加上‘#’ 号变为注释(使root账户从禁止登录的用户列表中排除)
# //chmod -R 775 /var/www/html
添加FTP用户时,需要注意几个方面: 1)需要将这个用户添加到上面创建的FTP用户组中,参数为:-g ftpgroup 2)因为是FTP传文件专用,所以要禁止这个用户登录CentOS,参数:-s /sbin/nologin 3)CentOS在添加用户时,默认的家目录是/home/用户名,很显然,这个目录不适合用来上传文件,所以可以指定一个FTP目录,并将这个目录设为FTP用户的家目录。在这里,假定FTP目录为/opt/ftp,参数为:-d /opt/ftp 4)可以在添加用户的时候,直接创建/opt/ftp目录,省去手动添加,参数为:-m ————————————————
原文链接:https://blog.csdn.net/smallfools/article/details/107713563。
在添加FTP用户的时候,使用了
-s /sbin/nologin,阻止了FTP用户登录CentOS,同时也阻止了他登录FTP。因为vsftpd会通过/etc/shells文件来判断一个用户是否为有效的FTP用户。使用以下代码,可以查看这个文件的内容
vim /etc/shells在文件最后添加
/sbin/nologin
锁定FTP目录:
因此,我们需要把FTP用户访问权限锁定在FTP目录里。这就需要使用到vsftpd的配置文件/etc/vsftpd/vsftpd.conf了。
#备份配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf-bak
#编辑配置文件
vim /etc/vsftpd/vsftpd.conf
其中相关的配置包括: 1)chroot_local_user,如果为YES,将所有用户都锁定在家目录,不能访问其他目录;如果为NO,则所有用户都不锁定在家目录。默认值为NO,所以在本节中的ftpuser1用户和上节中的centos用户都可以访问其他目录。如果改为YES的话,ftpuser1就只能访问/opt/ftp目录及子目录,centos用户就只能访问/home/centos目录及子目录。 一般来说,还是建议FTP用户只访问FTP目录,所以建议将chroot_local_user的值设为YES 2)由于chroot_local_user比如霸道,只要设为YES,所有的用户都会被锁定在家目录中,但凡事总有例外,万一有一个用户希望使用FTP上传文件到其他目录怎么办呢?所以CentOS有一个参数chroot_list_file可以用来指定一个列表,这个列表中可以添加不受chroot_local_user控制的用户名。 3)使用chroot_list_enable来启用或不启用chroot_list_file指定的列表。
所以,这是一套组合拳。 1)无论是否将用户锁在家目录,都可以使用chroot_list_file来指定“例外”用户。 如果chroot_local_user为YES,那么chroot_list_file中的用户,就是不被锁定的用户; 如果chroot_local_user为NO,那么chroot_list_file中的用户,就是被锁定的用户。 2)如果要使用chroot_list_file列表,就必须使用chroot_list_enable=YES来启用。所以: 如果chroot_local_user为YES,那么chroot_list_enable就必须为YES,要不然,所有用户都会被强制锁在家目录了; 如果chroot_local_user为NO,那么chroot_list_enable可以为YES或NO,可以指定例外,或不指定例个。 3)如果使用chroot_list_enable=YES启用了例外列表,就一定要使用chroot_list_file来指定例外列表的位置。 4)如果使用chroot_list_file来指定例外列表的位置,这个位置上就必须要有文件,哪怕是个空文件。 ————————————————
原文链接:https://blog.csdn.net/smallfools/article/details/107713563
文件夹权限配置:
CentOS规定,如果用户被锁定在家目录的话,这个目录就不能再有可写权限,否则,FTP无法登录。解决方式有两种:
1、移除家目录的写权限,另外添加有上传权限的目录。 1)移除家目录的写权限。
chmod a-w /opt/ftp
2)添加一个上传文件夹 移除家目录写权限之后,家目录就不再有可写权限,也就不能上传文件、新建目录、重命名文件和文件夹了,只能下载文件。变通方法只能在家目录里,再添加一个文件夹。
mkdir -p /opt/ftp/uploads
3)修改文件夹权限 如果使用root用户添加的话,默认文件夹的文件宿主和群宿主都为root,默认权限为rwxr-xr-x,而登录的FTP用户为ftpuser1,所以需要修改一下权限,否则还是无法上传文件。 最简单的办法,就是为文件夹的other用户直接添加写权限。chmod o+w /opt/ftp/uploads 也可以将文件宿主改成上面的ftpuser1,或将群宿主改成上面的ftpgroup,当然也可以两个都改。chown ftpuser1:ftpgroup /opt/ftp/uploads,然后再使用chmod需要设置一下文件夹的对应的权限。假设只修改了文件宿主,那么就要把文件夹的user权限设为7(读、写、执行都需要);假设只修改了群宿主,那么就要将文件夹的group权限设为7;other权限随意。chmod 770 /opt/ftp/uploads
2、让家目录可以拥有写权限 修改/etc/vsftpd/vsftpd.conf文件,添加allow_writeable_chroot=YES,让家目录可以有可写权限,这种方法比较简单。
7、添加例外列表 添加/etc/vsftpd/chroot_list文件,里面不需要添加内容。
touch /etc/vsftpd/chroot_list ————————————————
原文链接:https://blog.csdn.net/smallfools/article/details/107713563
作者: CLP ; 日期: 2024-07-24 ; 地点: 武汉; 天气: 晴 ;高温:40
QQ: 53258372; Mail : 53258372@QQ.com
微信:
