二、创建系统账户
这里存在两个账户:
vsftpd服务的宿主用户,默认为root。可以自己建一个用户作为vsftpd的宿主用户,也可不用管。这里还是建立一个vsftpd用户吧,没必要登录。
vsftpd虚拟的宿主用户,就像develop需要有系统相关权限,就映射成系统的ftp_develop用户(待会建立)的权限,所以这些用户也没有必要登录系统。
我想把develop、design、operate三个组都放到/var/ftp下,就当是虚拟宿主用户的家目录权限去控制访问吧
1、vsftpd服务的宿主用户:
[root@client ~]# useradd -s /sbin/nologin vsftpd
2、三个组对应的虚拟宿主用户:
[root@client ~]# useradd -d /var/ftp/develop -s /sbin/nologin ftp_develop
[root@client ~]# useradd -d /var/ftp/design -s /sbin/nologin ftp_design
[root@client ~]# useradd -d /var/ftp/operate -s /sbin/nologin ftp_operate
查看是否建立文件路径:
[root@client ~]# ls /var/ftp/
三、改主配置文件 /etc/vsftpd/vsftpd.conf
关键的一些解释一下:
anonymous_enable=NO
设定不允许匿名访问
local_enable=YES
设定本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问
write_enable=YES
设定可以进行写操作
local_umask=022
设定上传后文件的权限掩码
anon_upload_enable=NO
禁止匿名用户上传
anon_mkdir_write_enable=NO
禁止匿名用户建立目录
xferlog_enable=YES
设定开启日志记录功能
connect_from_port_20=YES
设定端口20进行数据连接
chown_uploads=NO
设定禁止上传文件更改宿主
xferlog_file=/var/log/vsftpd.log
vsftpd的服务日志。注意,该文件必须要手动touch出来,必须注意给与该用户对日志的写入权限(vsftpd服务宿主用户),否则服务将启动失败
xferlog_std_format=YES
设定日志使用标准的记录格式
nopriv_user=vsftpd
vsftpd服务的宿主用户vsftpd。必须注意与该服务相关的读写文件的读写权限问题
async_abor_enable=YES
设定支持异步传输功能
ascii_upload_enable=YES
ascii_download_enable=YES
设定支持ASCII模式的上传和下载功能
ftpd_banner=Welcome to blah FTP service.
设定vsftpd的登陆标语
chroot_list_enable=NO
限定在自己的FTP主目录里边,待会儿可以设置
pam_service_name=vsftpd
设定PAM服务下Vsftpd的验证配置文件名。刚刚修改的是/etc/pam.d/下的vsftpd文件,可以自己新建文件,目录要正确
userlist_enable=YES
设定userlist_file中的用户将不得使用FTP
tcp_wrappers=YES
设定支持TCP Wrappers
好了,需要修改新增的如下:(具体根据需要而定)
anonymous_enable=NO
不允许匿名用户登录
anon_upload_enable=NO
不允许匿名用户上传
anon_mkdir_write_enable=NO
不允许匿名用户建立目录
chown_uploads=NO
设定禁止上传文件更改宿主。
xferlog_file=/var/log/vsftpd.log
设定Vsftpd的服务日志保存路径
async_abor_enable=YES
设定支持异步传输功能。
ascii_upload_enable=YES
ascii_download_enable=YES
设定支持ASCII模式的上传和下载功能也都开启吧
ftpd_banner=Hello baby,Welcome to blah FTP service.
^_^,开个banner吧
chroot_list_enable=NO
限定在ftp主目录
nopriv_user=vsftpd
支撑Vsftpd服务的宿主用户
guest_enable=YES
设定启用虚拟用户功能
virtual_use_local_privs=YES
设定虚拟用户的权限符合他们的宿主用户
user_config_dir=/etc/vsftpd/vsftpd_config
设定虚拟用户个人Vsftp的配置文件存放路径。/etc/vsftpd/vsftpd_config里面的文件都是虚拟用户的专用配置文件,注意:配置文件名必须和虚拟用户名相同
那我们就专门为虚拟用户建立一个配置文件目录吧