centos 搭建ftp(匿名+本地用户)

centos 搭建ftp(匿名+本地用户)

今天临时需要用下ftp,发现我云服务器的ftp被我改完配置后没有恢复,导致无法使用,这里记录一下,顺便存个脚本。

bash <(curl https://gitee.com/ffing/onekey/raw/master/onekey.sh)

本脚本vsftp实现:匿名+本地用户访问FTP!

https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-66.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

流程:

  • 创建ftp账号/组
  • 安装vsftpd
  • 创建目录及文件
  • 配置vsftpd
  • 测试ftp

第一步,创建用户/组

创建FTP组:

#以"ftpgroup"为ftp组
groupadd ftpgroup

创建FTP目录:

#以"/ftp"为根目录,并更改属组
mkdir /ftp
chown :ftpgroup /ftp

创建FTP用户:

#创建用户"ffing"(配置bash、家目录、组、备注)
useradd -s /sbin/nologin -d /ftp/ffing -g ftpgroup -c "FTP用户" ffing

第二步,安装vsftpd

#安装
yum -y install vsftpd
#启动
systemctl start vsftpd
systemctl enable vsftpd
#防火墙放行vsftpd服务
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
###seliunx
#查看ftpd的selinux权限
getsebool -a | grep ftpd
#seliunx放行ftp
setsebool -P ftpd_full_access=on

第三步,创建目录及文件

vsftp默认目录树:

/etc/vsftpd/
├── ftpusers
├── user_list
├── vsftpd.conf
└── vsftpd_conf_migrate.sh

#添加上面创建的ftp登录账号(白名单文件user_list)
echo ffing >> /etc/vsftpd/user_list
#####添加匿名用户访问(根据自己需求)
echo anonymous >> /etc/vsftpd/user_list
#创建chroot_list用户列表(允许切换用户目录)
touch /etc/vsftpd/chroot_list

第四步,配置vsftpd

1.编辑 /etc/vsftpd/vsftpd.conf

实现ftp默认目录为/ftp,并锁定用户根目录禁止切换,userlist控制登陆名单

配置内容如下

#匿名登录
anonymous_enable=YES
#允许本地用户模式
local_enable=YES
#写权限
write_enable=YES
#本地用户模式创建文件的umask值
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd

###登录控制###
###############################################################
#当userlist_enable=NO
#仅(ftpusers)中的用户禁止访问,匿名、本地用户均可以访问

#当userlist_enable=YES,userlist_deny=NO
#(user_list)中的用户可访问,(ftpusers)禁止访问,其它用户也禁止访问
#如果(ftpusers)和(user_list)存在相同用户将禁止访问,优先禁用《ftpusers》中的用户
#如想匿名用户也可以访问,需anonymous加入(user_list)

#当userlist_enable=YES,userlist_deny=YES
#(ftpusers和user_list)中的用户禁止访问,其它用户可以访问
###############################################################
userlist_enable=YES
userlist_deny=NO

tcp_wrappers=YES

###指定默认目录###
#本地用户默认目录
local_root=/ftp
#匿名用户默认目录
anon_root=/ftp

###锁定目录###
#锁定根目录,禁止用户切换
chroot_local_user=YES
#允许写权限(否则500错误)
allow_writeable_chroot=YES
#启用列表
chroot_list_enable=YES
#写入列表内的用户允许切换用户
chroot_list_file=/etc/vsftpd/chroot_list

2.编辑 /etc/pam.d/vsftpd

注释第四行:#auth required pam_shells.so

sed -i '4s/^/#/' /etc/pam.d/vsftpd
https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-57.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

重启ftp

systemctl restart vsftpd

第四步,测试

https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-58.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0
https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-59.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

匿名+本地用户:网页、客户端都可以正常登录。

1.在/ftp公共目录下,所有用户,具有读、执行(下载权限),

https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-60.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

2.在自己用户名目录下,具有读、写、执行(上传下载权限),其它用户无任何权限无法访问。

https://qnimg.ffing.cn/wp-content/uploads/2021/11/image-61.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

注:权限问题,删除文件或目录,和文件或目录本身权限无关,其实是删除上级目录的inode信息,所以需要删除文件,必须上级目录具备写权限

目录权限:(通常r、x是一起的,没有x将只能看到目录内文件名)

  • r权限,可以看到目录内文件
  • w权限,增加、修改、删除
  • x权限,可以对目录内的文件进行下一步操作

文件权限:

  • r权限,可以查看文件内容
  • w权限,增加、修改、删除
  • x权限,执行权限
good good study, day day up!

发表评论

textsms
account_circle
email

centos 搭建ftp(匿名+本地用户)
今天临时需要用下ftp,发现我云服务器的ftp被我改完配置后没有恢复,导致无法使用,这里记录一下,顺便存个脚本。 bash <(curl https://gitee.com/ffing/onekey/raw/master/onekey.…
扫描二维码继续阅读
2021-11-15