Linux Vsftpd 搭建FTP服务器以及所遇到的深坑

需求确定:

可以使用匿名用户以及账号密码用户登录和上传文件。

开始安装:

来一个新系统:yum -y install vsftpd就安装吧。

文件介绍:
/etc/vsftpd/vsftpd.conf:主配置文件
/etc/vsftpd/user_list与/etc/vsftpd/chroot_list文件格式为一行一个用户

其中chroot_list没有需要手动创建

****配置讲解****

1)开启匿名用户,匿名用户目录
anonymous_enable=YES
2)开启本地用户登录与写入权限
local_enable=YES
write_enable=YES
local_umask=022
3)开启匿名用户的写入权限
anon_upload_enable=YES
anon_mkdir_write_enable=YES
4)登陆权限限制
userlist_enable=YES
userlist_deny=NO
userlist_deny为NO,表示只允许user_list文件中的用户登录
!!!!重点:如果想要开启匿名用户与虚拟用户共存,那么user_list中必须增加anonymous用户
5)更改监听
listen=YES
#listen_ipv6=YES
6)控制用户不能访问上级目录,对安全性非常重要
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
配置1表示所有用户都可以访问,注意是都可以
配置2表示除了下面文件中的用户之外,也就是说文件中的用户是不能访问上级目录的。
这样配置是说除了文件中的用户其他人都能访问上级目录,而要求是都不能访问,这里搭配序号4的配置信息来进行权限管理
例如:创建了一个user1,将user1放入user_list文件中表示目前只有user1能登录,然后在chroot_list中添加user1,表示只有user1不能访问上级目录,于是达到要求。

后续需要添加用户时,将新用户在user_list和chroot_list中添加一遍即可。

****************

****新增用户***

/usr/sbin/adduser -d (/home/ftp1dir) -g (ftpgroup) -s /sbin/nologin (ftp1)
passwd ftp1
括号内可改,执行时去掉括号
新增用户时注意坑!!!!
1.新增的用户ftp1一定要加入到user_list中,且放到chroot_list中。

2.用户所绑定的目录/home/ftp1dir最好放到/home目录下

****************

****深坑提点***

1.控制用户不能访问上级目录时,用户的家目录一定不能有写入权限,否则登录不上
例如:
user1用户的家目录为:/home/user1
chmod a-w /home/user1
如果去掉写入权限后还是无法登录,那么就要考虑是selinux的问题了。
#getsebool
getsebool:  SELinux is disabled(表示关闭)
如果没关闭,vi /etc/selinux/config
SELINUX=disabled,重启电脑就关闭了。
2.无法上传文件。
建议在家目录中新建一个pub文件,专门用于用户上传文件。
mkdir /home/user1/pub
chmod 777 /home/user1/pub
新建的pub文件夹赋予777权限,就可以将文件上传到pub文件夹中了。
3.这样配置完经过测试匿名用户可以上传文件但是不能下载文件。。。
anon_umask=022
在主配置文件中加入该项配置即可解决。

*******************************************************

安装完毕!

你可能感兴趣的:(技术贴)