您的位置:首页 > 编程语言 > PHP开发

vsftp的初始化配置

niruoshuifeng 2020-11-21 18:16 155 查看 https://blog.51cto.com/3823536

一,基本权限设置

1,目录权限设置

默认的vftp文件根目录为/var/ftp,该目录默认为root:root 0755权限,为了使其它用户能上传文件,给ftp根目录其它用户写权限

chmod 1757 /var/ftp

2,修改selinux策略

setsebool -P ftpd_full_access on

二,本地用户模式

配置文件如下:

anonymous_enable=NO
local_enable=YES
write_enable=YES
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=YES
local_root=/var/ftp
chroot_local_user=YES
allow_writeable_chroot=YES

三,虚拟用户模式

1,创建用于进行FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码。
比如:
在/etc/vsftpd目录下创建一个虚拟用户文件vusers

aaa
123.com
bbb
123.com

该文件包含两个账户aaa,bbb,且密码均为123.com
2,使用db_load命令将vusers文件转为数据库文件

db_load -T -t hash -f vusers vusers.db

降低数据库文件权限
chmod 600 vusers.db

3,建立用于支持虚拟用户的PAM文件。

vi /etc/pam.d/vsftpd.vu
auth    required        /lib64/security/pam_userdb.so   db=/etc/vsftpd/vusers
account required        /lib64/security/pam_userdb.so   db=/etc/vsftpd/vusers

4,在vsftpd服务程序的主配置文件中通过pam_service_name参数将PAM认证文件的名称修改为vsftpd.vu
即,将vsftpd.conf文件中pam_service_name=vsftpd修改为:

pam_service_name=vsftpd.vu

并且添加如下

guest_enable=YES
guest_username=ftp

5,为虚拟用户设置不同的权限。
比如:允许aaa上传、创建、修改、查看、删除文件,只允bbb查看文件

mkdir /etc/vsftpd/vsusers_dir
cd /etc/vsftpd/vsusers_dir
touch aaa bbb

编辑aaa

anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

修改vsftpd.conf,添加一行

user_config_dir=/etc/vsftpd/vusers_dir

完整的配置文件如下:

anonymous_enable=NO
local_enable=YES
write_enable=YES
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.vu
userlist_enable=YES
#local_root=/var/ftp
chroot_local_user=YES
allow_writeable_chroot=YES
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/vusers_dir

最后重启vsftpd使配置生效.

常用参数说明:

download_enable=[YES|NO]是否允许下载文件
userlist_enable=[YES|NO]设置用户列表为“允许”还是“禁止”操作
userlist_deny=[YES|NO]max_clients=0最大客户端连接数,0 为不限制
max_per_ip=0同一IP地址的最大连接数,0 为不限制
anonymous_enable=[YES|NO]是否允许匿名用户访问
anon_upload_enable=[YES|NO]是否允许匿名用户上传文件
anon_umask=022匿名用户上传文件的umask值
anon_root=/var/ftp匿名用户的FTP根目录
anon_mkdir_write_enable=[YES|NO]是否允许匿名用户创建目录是否开放匿名用户的其他写入权限(包括重命名、删anon_other_write_enable=[YES|NO]除等操作权限)
anon_other_write_enable=[YES|NO] 是否允许匿名用户修改目录名称或删除目录
anon_max_rate=0匿名用户的最大传输速率(字节/秒),0 为不限制
local_enable=[YES|NO]是否允许本地用户登录FTP
local_umask=022本地用户上传文件的umask值
local_root=/var/ftp本地用户的FTP根目录
chroot_local_user=[YES|NO]是否将用户权限禁锢在FTP目录,以确保安全local_max_rate=0本地用户最大传输速率(字节/秒),0 为不限制
guest_enable=YES开启虚拟用户模式
guest_username=virtual指定虚拟用户账户
pam_service_name=vsftpd.vu指定PAM文件
allow_writeable_chroot=YES允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求
标签: