案例:在一个企业网络当中模拟架设一个ftp

准备工作:(占的空间比较大)

新增一块虚拟硬盘:分区——》格式化——》挂载 (/mnt/ftppart)

要求:     

挂载点必须挂载到公共目录 /mnt/ftppart/public       所有人的权限 ro(只能读不能上传)

      每个用户都有个人目录/mnt/ftppart/home/       大小为10M

  用户的下载速度:匿名用户是100k/s     本地用户是1M/s

  同时在线的用户最多不能超过20个

   每个用户的连接数不能超过2个

步骤:

创建一个分区:

[root@localhost ~]# fdisk –l       查看标识

[root@localhost ~]# fdisk /dev/sdb     制作分区

格式化分区:

[root@localhost ~]# partprobe /dev/sdb        内核重新读取分区表
[root@localhost ~]# mkfs -t ext3 /dev/sdb1      格式化

创建目录进行挂载:

[root@localhost ~]# mkdir /mnt/ftppart      建立挂载目录
[root@localhost ~]# mount /dev/sdb1 /mnt/ftppart/       挂载

[root@localhost ~]# df –h      查看挂载信息
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda3             9.7G  6.6G  2.6G  72% /
/dev/sda1              99M   12M   83M  12% /boot
tmpfs                 252M     0  252M   0% /dev/shm
/dev/hdc              2.8G  2.8G     0 100% /media/RHEL_5.4 i386 DVD
/dev/sdb1              50G  180M   47G   1% /mnt/ftppart
在光盘上建立挂载点进行挂载:

[root@localhost ~]# mkdir /mnt/cdrom       建立挂载目录

[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/       挂载
[root@localhost ~]# cd /mnt/cdrom/Server/       切换到光盘上

在光盘上做安装vsftpd:
[root@localhost Server]# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm:

[root@localhost Server]# cd /mnt/ftppart/     切换到分区目录
[root@localhost ftppart]# ll
总计 16
drwx------ 2 root root 16384 03-21 13:24 lost+found
[root@localhost ftppart]# mkdir public        新建公共目录
[root@localhost ftppart]# ll        查看
总计 20
drwx------ 2 root root 16384 03-21 13:24 lost+found
drwxr-xr-x 2 root root  4096 03-21 13:53 public
[root@localhost ftppart]# cd public/          切换到公共目录
[root@localhost public]# touch p1 p2        建立2个文本文档
[root@localhost public]# useradd user1       新增用户user1
[root@localhost public]# useradd user2       新增用户user2
[root@localhost public]# echo "123" |passwd --stdin user1       赋予user1口令
Changing password for user user1.
passwd: all authentication tokens updated successfully.
[root@localhost public]# echo "123" |passwd --stdin user2      赋予user2口令
Changing password for user user2.
passwd: all authentication tokens updated successfully.
[root@localhost public]# ll /home/      查看用户
总计 16
drwx------ 3 dengsilin dengsilin 4096 02-08 16:30 dengsilin
drwx------ 3 user1     user1     4096 03-20 09:27 user1
drwx------ 4 user2     user2     4096 03-21 13:54 user2
[root@localhost public]# grep user /etc/passwd     搜索查看用户所在的家目录文件rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin
sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin
user1:x:501:501::/home/user1:/bin/bash
user2:x:502:502::/home/user2:/bin/bash
编辑修改用户所在的家目录文件

[root@localhost public]# vim /etc/passwd      

image

[root@localhost public]# cd /mnt/ftppart/    切换到分区目录
[root@localhost ftppart]# mkdir home      建立目录
[root@localhost ftppart]# ll         查看
总计 24
drwxr-xr-x 2 root root  4096 03-21 14:02 home
drwx------ 2 root root 16384 03-21 13:24 lost+found
drwxr-xr-x 2 root root  4096 03-21 14:03 public

把老的家目录用户移动到新的家目录下
[root@localhost ftppart]# cd /home/  
[root@localhost home]# mv * /mnt/ftppart/home/  

[root@localhost home]# su – user1  切换用户登陆
[user1@localhost ~]$ pwd   查看所在的位置
/mnt/ftppart/home/user1

[user1@localhost ~]$ exit     退出

如果再新增用户,用户所在的目录还是原先的位置:

[root@localhost home]# useradd user3      新增用户user3
[root@localhost home]# grep user /etc/passwd      查看用户所在的家目录文件
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin
sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin
user1:x:501:501::/mnt/ftppart/home/user1:/bin/bash
user2:x:502:502::/mnt/ftppart/home/user2:/bin/bash
user3:x:503:503::/home/user3:/bin/bash

如果想要新增用户,使用户所在的目录在新建的家目录下需要做修改默认的useradd变量:

[root@localhost home]# useradd –D        查看新增用户默认所在的位置
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@localhost home]# useradd -D –b  /mnt/ftppart/home   更改新增用户的位置
[root@localhost home]# useradd –D    查看
GROUP=100
HOME=/mnt/ftppart/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@localhost home]# userdel -r user3       删除用户user3
[root@localhost home]# useradd user3          新增用户user3
[root@localhost home]# grep user /etc/passwd      查看用户所在的家目录文件
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/home/oprofile:/sbin/nologin
sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin
user1:x:501:501::/mnt/ftppart/home/user1:/bin/bash
user2:x:502:502::/mnt/ftppart/home/user2:/bin/bash
user3:x:503:503::/mnt/ftppart/home/user3:/bin/bash
[root@localhost home]# su – user3       用用户user3登陆
[user3@localhost ~]$ pwd      查看位置
/mnt/ftppart/home/user3
[user3@localhost ~]$ exit     退出
logout

要想控制用户个人目录的空间大小必须进行磁盘配额(针对分区)

[root@localhost home]# vim /etc/fstab

image

[root@localhost home]# mount       先查看挂载
/dev/sda3 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
/dev/hdc on /media/RHEL_5.4 i386 DVD type iso9660 (ro,noexec,nosuid,nodev,uid=0)
/dev/sdb1 on /mnt/ftppart type ext3 (rw)
/dev/hdc on /mnt/cdrom type iso9660 (ro)
[root@localhost home]# mount -o remount /dev/sdb1   从新挂载一下[root@localhost home]# mount      再次的查看挂载
/dev/sda3 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
/dev/hdc on /media/RHEL_5.4 i386 DVD type iso9660 (ro,noexec,nosuid,nodev,uid=0)
/dev/sdb1 on /mnt/ftppart type ext3 (rw,usrquota)
/dev/hdc on /mnt/cdrom type iso9660 (ro)

产生所有用户配置文件:

[root@localhost home]# cd /mnt/ftppart/
[root@localhost ftppart]# ll
总计 24
drwxr-xr-x 6 root root  4096 03-21 15:00 home
drwx------ 2 root root 16384 03-21 13:24 lost+found
drwxr-xr-x 2 root root  4096 03-21 14:03 public
[root@localhost ftppart]# quotacheck -augv –c    
quotacheck: Scanning /dev/sdb1 [/mnt/ftppart] quotacheck: Cannot stat old user quota file

quotacheck: Old group file not found. Usage will not be substracted.
done
quotacheck: Checked 25 directories and 24 files
quotacheck: Old file not found.
[root@localhost ftppart]# ll
总计 32
-rw------- 1 root root  7168 03-21 15:34 aquota.user
drwxr-xr-x 6 root root  4096 03-21 15:00 home
drwx------ 2 root root 16384 03-21 13:24 lost+found
drwxr-xr-x 2 root root  4096 03-21 14:03 public

编辑用户的配置文件:

[root@localhost ftppart]# edquota -u user1

 0
[root@localhost ftppart]# edquota -p user1 user2   复制user1到user2
[root@localhost ftppart]# edquota -p user1 user3   复制user1到user3
[root@localhost ftppart]# edquota -u user2        查看user2
[root@localhost ftppart]# quotaon /dev/sdb1    启动磁盘配额功能

把启动磁盘配置功能编辑到开机脚本中
[root@localhost ftppart]# echo "quotaon /dev/sdb1"  >>/etc/rc.d/rc.local

[root@localhost ftppart]# vim /etc/rc.d/rc.local

1
改变匿名账号的家目录和编辑实验要求

[root@localhost ftppart]# cd /var/ftp/
[root@localhost ftp]# pwd
/var/ftp
[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf

2
[root@localhost ftp]# service vsftpd restart
关闭 vsftpd:                                                  [确定]
为 vsftpd 启动 vsftpd:                                    [确定]

测试

用windows匿名打开访问ftp://192.168.101.200

1 

匿名登录ftp只可以下载ftp上的文件不可以上传和新建文件

2

3 4

用本地用户登录

5 

可以上传和新建修改文件

6