案例一:给公司每人一个备份文件的远程备份目录
1.1 公司员工能够映射自己的目录到自己的计算机上
实现步骤:
   1)启动smb服务
      service smb start
   2)添加用户和smb用户
      adduser –s /sbin/nologin 用户
      smbpasswd –a 用户
   3)用户在自己的计算机上添加映射
映射网络驱动器
右击“我的电脑”——选择驱动器号,并且输入\\smb服务器IP,然后输入smb用户和密码
快捷方式
 右击“桌面”——输入\\smb服务器IP,然后输入smb用户和密码
4)员工要想存放或取出个人文件,只需放入我的电脑中映射的那个盘符或者桌面的快捷方式中即可。
1.2 用户能够看到多一个发布公告的目录
 实现步骤
  1)添加一个用户和smb用户用于管理公告目录
     adduser –s /sbin/nologin gonggao
     smbpasswd –a gonggao
  2)更改用户gonggao的宿主目录gonggao的权限(gonggao用户完全控制,其它用户只有在读取和执行权限)
     chmod 755 gonggao
  3)修改samba服务配置文件,添加公告目录的配置(默认有读取权限)
[public]
          path = /home/gonggao
          public = yes
          writable = yes
  4)普通员工就可以看到公告目录,只能读取,而gonggao用户就可以进行公告的发布,修改。
 
案例二:给公司做一个电影,MP3,游戏等文件共享的服务器
2.1 用户能够不用用户名和密码访问共享服务器   
2.2用户能够通过ftp进行目录的更新
实现步骤:
  1)启动vsftpd服务
     service vsftpd start
  2)添加一个用户对ftp服务器可以更新
     adduser –s /sbin/nologin ftpmanager
     passwd ftpmanager
  3)更改ftpmanager目录的权限
     chmod 755 ftpmanager
  4)在ftpmanager目录下创建我们需要的目录,如MP3,电影,MV等
  5)修改samba服务配置文件,添加我们在ftpmanager目录下创建的目录(默认有读取权限)
     [MP3]
          path = /home/ftpmanager/MP3 
[MV]
          path = /home/ftpmanager/MV 
[movies]
          path = /home/ftpmanager/movies 
[video]
          path = /home/ftpmanager/video 
   6)重启samba服务
     Service smb restart
   7)用户可创建快捷方式来使用资源,ftpmanager用户可通过ftp对资源进行更新。
 
案例三:保证每个人不需要用户名和密码就可以使用ftp,下载需要的东西,同时也能够上传一些东西到服务器
3.搭建vsftpd的匿名用户访问FTP服务器
   3.1 限制匿名用户的下载速度
   3.2 匿名用户能够上传文件到服务器
实现步骤:
   1)调整匿名用户上传文件存放目录权限(匿名用户对应的系统账户为ftp,其宿主目录为“/var/ftp”.将/var/ftp/目录中的子目录pub的的其它用户权限加上x写的权限,供上传文件使用)
cd /var/ftp
chmod o+w pub
   2)修改vsftpd.conf配置文件(开启匿名用户访问、上传)
anonymous_enable=NO         // 开启匿名用户访问
local_enable=YES           
write_enable=YES            // 允许开放写的权限
anon_umask=022              // 设置匿名用户上传建立文件时的权限掩码
anon_upload_enable=YES       // 允许匿名上传文件
anon_mkdir_write_enable=YES  // 允许匿名用户创建目录
anon_max_rate=102400        // 限制匿名用户的最大传输速率(0为无限制),单位为字节
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
   3)重新启动vsftpd服务
  service vsftpd restart
   4)在客户端访问FTP服务器,测试上传和下载功能
 
案例四:保证每个人使用ftp可以对自己私人文件进行备份,需要的时候下载到本地使用,需要保存重要数据时上传到FTP服务器
4.搭建本地的用户访问ftp服务器
   4.1 用户可以登陆和使用ftp服务器
   4.2 限制用户的下载速度
   4.3 添加haha和hehe用户,haha能登陆,hehe不能登陆(注:服务器仅能让haha登陆,别人都不行)
实现步骤:
   1)添加FTP用户(即本地用户)(为了安全起见,不允许登录系统)
useradd s /sbin/nologin haha
passwd haha
useradd s /sbin/nologin hehe
passwd hehe
useradd s /sbin/nologin haha
passwd haha
   2)将haha用户添加到/etc/vsftpd/user_list文件中
   2)修改vsftpd.conf配置文件
anonymous_enable=NO
local_enable=YES            // 启用本地用户
local_umask=022            // 设置本地用户上传建立文件的默认权限掩码
write_enable=YES           // 允许开放写权限
chroot_local_user=YES      // 为安全起见,将用户禁锢与其宿主目录中
max_clients=20             // 限制同时客户连接数为最多20
max_per_ip=2              // 限制同一台客户机连接数为最多2
local_max_rate=102400     // 本地用户下载、上传限速为100KB/s
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_deny=NO           // 仅允许列表中的用户账户登录
tcp_wrappers=YES
   3)重新启动vsftpd服务
   service vsftpd restart
   4)在客户端访问FTP服务器,测试用户haha和hehe的登陆情况,然后用能登录的用户登录到FTP服务器测试下载及上传功能。
 
案例五:保证每个人通过验证都可以访问相同的FTP资源,可以下载和上传,并且可以针对单独用户设置上传和下载的权限
5.建立基于虚拟用户的vsftpd服务
实现步骤:
1. 建立虚拟FTP用户的帐号数据库文件
安装db4-utils软件包,获得db_load命令工具
rpm -ivh db4-utils-4.3.29-9.fc6.i386.rpm
建立文本格式的用户名/密码列表文件(奇数行为用户名,偶数行为上一行用户的密码)例如:
vi /etc/vsftpd/vusers.list
zhangsan
123
lisi
123
db_load工具将列表文件转化为DB数据库文件
cd /etc/vsftpd/
db_load -T -t hash -f vusers.list vusers.db
2. 创建FTP根目录及虚拟用户映射的系统用户
添加一个系统用户账号(该账号无需设置密码及登陆系统,该用户账号的宿主目录作为所有虚拟用户登陆后的共同FTP根目录。)
useradd -d /var/ftproot -s /sbin/nologin virtual
更改FTP根目录权限
chmod 755 /var/ftproot/
建立测试文件
ls -lh /boot > /var/ftproot/vutest.file
3. 建立支持虚拟用户的PAM认证文件(PAM配置文件主要用于为程序提供用户认证控制,vsftpd服务使用的默认PAM配置文件为/etc/pam.d/vsftpd,可以参考该文件的格式建立新的PAM   配置文件,用于虚拟用户的认证控制。)
vi /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth         required     pam_userdb.so db=/etc/vsftpd/vusers.db
account      required     pam_userdb.so db=/etc/vsftpd/vusers.db
4. vsftpd.conf文件中添加虚拟用户支持(添加如下配置项即可)
anonymous_enable=NO
local_enable=YES            // 使用虚拟用户需要启用本地用户
anon_umask=022            // 设置虚拟用户所上传文件的默认权限掩码
write_enable=YES
guest_enable=YES           // 启用用户映射功能
guest_username=virtual     // 将映射用户指定为virtual
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd.vu   // 修改使用的PAM文件位置
userlist_enable=YES
tcp_wrappers=YES
5. 为个别虚拟用户建立独立的配置文件
修改vsftpd.conf主配置文件,添加用户配置目录支持
vi /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_dir  
   // 添加此行配置行,指定用户配置目录位置
为用户zhangsanlisi建立独立的配置目录及文件
mkdir /etc/vsftpd/vusers_dir
cd /etc/vsftpd/vusers_dir/
vi zhangsan
anon_upload_enable=YES        // 是否允许上传
anon_mkdir_write_enable=YES   // 是否可以修改建立目录
anon_other_write_enable=YES   // 是否可以修改文件
touch lisi
6. 重新加载vsftpd配置
service vsftpd restart
7. 使用虚拟FTP账户访问测试
使用zhangsan用户登陆vsftpd服务器,可以浏览、下载文件、更改文件,也可以上传文件。
使用lisi用户登陆vsftpd服务器,可以浏览、下载文件,但无法更改文件,上传文件。