案例一:给公司每人一个备份文件的远程备份目录 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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服务器,可以浏览、下载文件,但无法更改文件,上传文件。