【案例1】
建立基于虚拟用户的FTP服务器,并根据以下要求配置FTP服务器。
(1)配置FTP匿名用户的主目录为/var/ftp/anon。下载带宽限制为100kB/s
(2)建立一个名为abc,口令为361way.com的FTP账户。下载带宽限制为500kB/s。
(3)设置FTP服务器同时登录到FTP服务器的最大链接数为100;每个IP最大链接数为3;用户空闲时间超过限值为5分钟。
配置方法:
<strong><span style="color:#E53333;">1、创建名用户的主目录</span></strong>
mkdir /var/fpt/anon
<strong><span style="color:#E53333;">2、新建abc用户</span></strong>
useradd abc
echo '361way.com' | passwd --stdin abc
<strong><span style="color:#E53333;">3、/etc/vsftpd/vsftpd.conf配置</span></strong>
修改或增加以下部分,其他配置保持默认
anonymous_enable=YES
anon_root=/var/ftp/anon
anon_max_rate=100000
# Uncomment this to allow local users to log in.
local_enable=YES
local_max_rate=500000
max_clients=100
max_per_ip=3
connect_timeout=300
<span style="color:#E53333;"><strong>4、虚拟用户配置</strong></span>
# vim /etc/vsftpd/vuser
tom ---->用户名
123 ----->密码
有多个虚拟用户时,在上面的配置文件后继续增加。并将本文件中的用户密码生成数据库文件
<br />
db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db
chmod 600 /etc/vsftpd/vuser.db
修改pam文件
# vim /etc/pam.d/vsftpd
#注释掉原来的内容,然后加入如下内容:
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
最后编辑vsftpd.conf文件,增加如下内容:
<br />
guest_enable=YES
guest_username=abc
<br />
【案例2】
1、新建一分区,10G空间,ext3 文件系统,挂在到 /ftp下,作为 ftp服务器数据存放地方。
2、四个部门:dep1,dep2, dep3, dep4,分别对应目录 /ftp/dep1,/ftp/dep2,/ftp/dep3,/ftp/dep4。另外设定一个公共目录 /ftp/public。
3、五个用户:admin,user1,user2,user3,user4。其中:user 1/2/3/4分别对应部门dep 1/2/3/4,他们只能访问自己所属部门的目录和public目录。如:user1只能访问dep1和public目录,不能访问其它目录。admin为管理员用户,可以访问 ftp 服务器上的任何目录。
4、用户访问权限限制:user1/2/3/4在所能访问的目录,具有上传文件、下载文件的功能,但是不能够删除文件、更改文件权限等功能。admin管理员用户对所有目录具有文件上传、下载、删除、权限更改等功能。
5、对每个部门定制一个 quota,设置该账户的文件配额为1000个;磁盘配额为2G。
6、匿名用户不能访问。
配置方法:
<span style="color:#E53333;"><strong>1、分区并配置启用quota</strong></span>
<br />
# fdisk /dev/hdb
# mkfs.ext3 /dev/hdb1
# mkidr /ftp
# mount /dev/hdb1 /ftp -o usrquota,grpquota
在/etc/fstab中增加如下配置
<br />
# vim /etc/fstab
----->加入下面一句
/dev/hdb1 /ftp ext3 defaults,usrquota,grpquota 0 0
<span style="color:#E53333;"><strong>2、增加用户、组、目录,并配置权限</strong></span>
<br />
# groupadd dep1
# groupadd dep2
# groupadd dep3
# groupadd dep4
# groupadd boobooke
# usradd -G dep1,boobooke user1
# usradd -G dep2,boobooke user2
# usradd -G dep3,boobooke user3
# usradd -G dep4,boobooke user4
# usradd -G dep1,dep2,dep3,dep4,boobooke admin
# passwd user1
# passwd user2
# passwd user3
# passwd user4
# passwd admin
# mkdir /ftp/dep1
# mkdir /ftp/dep2
# mkdir /ftp/dep3
# mkdir /ftp/dep4
# mkdir /ftp/public
# chown uesr1:dep1 /ftp/dep1
# chown uesr2:dep2 /ftp/dep2
# chown uesr3:dep3 /ftp/dep3
# chown uesr4:dep4 /ftp/dep4
# chown admin:boobooke /ftp/public
# chmod 770 /ftp/dep1
# chmod 770 /ftp/dep2
# chmod 770 /ftp/dep3
# chmod 770 /ftp/dep4
# chmod 770 /ftp/pubic
查看结果ftp挂载点的文件如下:
<br />
-rw------- 1 root root 8192 Jul 26 11:46 aquota.group
-rw------- 1 root root 7168 Jul 26 11:46 aquota.user
drwxrwx--- 2 user1 dep1 4096 Jul 25 20:47 dep1
drwxrwx--- 2 user2 dep2 4096 Jul 25 20:47 dep2
drwxrwx--- 2 user3 dep3 4096 Jul 25 20:47 dep3
drwxrwx--- 2 user4 dep4 4096 Jul 25 20:47 dep4
drwx------ 2 root root 16384 Jul 25 20:44 lost+found
drwxrwx--- 2 admin boobooke 4096 Jul 25 20:48 public
<span style="color:#E53333;"><strong>3、quota磁盘配额配置</strong></span>
<br />
#mount /dev/hdb1 /ftp -o usrquota,grpquota
# quotacheck -cuvg /dev/sdb1
# quotaon -a
# edquota -g dep1
Disk quotas for group dep1 (gid 503):
Filesystem blocks soft hard inodes soft hard
/dev/hdb1 0 1024000 2048000 0 500 1000
# edquota -g -p dep1 dep2 dep3 dep4(-u -g将源用户组和群组的quota设置套用至其他用户或群组。)
<span style="color:#E53333;"><strong>4、编辑vsftpd.conf</strong></span>
<br />
# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_root=/ftp
user_config_dir=/etc/vsftpd/ftp_config_dir
----> 开启chroot
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
<strong><span style="color:#E53333;">5、建立用户配置文件</span></strong>
<br />
# mkdir /etc/vsftpd/ftp_config_dir
# vim /etc/vsftpd/ftp_config_dir/user1
cmds_allowed=ABOR,ACCT,APPE,CWD,CDUP,HELP,LIST,MODE,MDTM,NOOP,NLST,PASS,PASV,PORT,PWD,QUIT,REIN,RETR,SITE,SIZE,STOR,STAT,STOU,STRU,SYST,TYPE,USER
# cp /etc/vsftpd/ftp_config_dir/user1 /etc/vsftpd/ftp_config_dir/user2
# cp /etc/vsftpd/ftp_config_dir/user1 /etc/vsftpd/ftp_config_dir/user3
# cp /etc/vsftpd/ftp_config_dir/user1 /etc/vsftpd/ftp_config_dir/user4
<br />