Ubuntu Server搭建FTP服务器(3) --虚拟用户FTP服务器架设

Ubuntu Server搭建FTP服务器(3) --虚拟用户FTP服务器架设

参考:ubuntu中文wiki百科,网址:wiki.ubuntu.org.cn

环境:Ubuntu 9.04 Server+VSFTPD 2.0.7

slmagicbox@ubuntu904server:~$ uname -a
Linux ubuntu904server 2.6.28-11-server #42-Ubuntu SMP Fri Apr 17 02:48:10 UTC 2009 i686 GNU/Linux

slmagicbox@ubuntu904server:~$ dpkg -l  | grep vsftpd
ii  vsftpd                                    2.0.7-0ubuntu1                    The Very Secure FTP Daemon

原始配置文件/etc/vsftpd.conf:

本配置文件为安装vsftpd后默认生成的, 以“#”开头为注释项
 # Example config file /etc/vsftpd.conf
    listen=YES               #以standalone模式运行vsftpd
    #listen_ipv6=YES
    anonymous_enable=YES  #允许匿名用户访问
    #local_enable=YES
    #write_enable=YES
    #local_umask=022
    #anon_upload_enable=YES
    #anon_mkdir_write_enable=YES
    dirmessage_enable=YES    #当用户首次进入FTP服务器的目录时,显示该目录下的message消息,默认为.message文件,可以用message_file来定义
    xferlog_enable=YES #启用日志,默认路径/var/log/vsftpd.log
    connect_from_port_20=YES  #数据连接使用默认的ftp-data端口(20端口)
    #chown_uploads=YES
    #chown_username=whoever
    #xferlog_file=/var/log/vsftpd.log
    #xferlog_std_format=YES
    #idle_session_timeout=600
    #data_connection_timeout=120
    #nopriv_user=ftpsecure
    #async_abor_enable=YES
    #ascii_upload_enable=YES
    #ascii_download_enable=YES
    #ftpd_banner=Welcome to blah FTP service.
    #deny_email_enable=YES
    #banned_email_file=/etc/vsftpd.banned_emails

    # chroot_list_enable below.
    #chroot_local_user=YES
    #chroot_list_enable=YES
    #chroot_list_file=/etc/vsftpd.chroot_list
    #ls_recurse_enable=YES

    # Debian customization
    secure_chroot_dir=/var/run/vsftpd #忽略
    pam_service_name=vsftpd  #忽略
    rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem #忽略
    rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key #忽略
   

修改后功能:


首先我们在/home/ftp目录下建立了以下两个子目录
  • ftphome1
  • ftphome2
然后,我们创建3个虚拟用户,密码分别是用户名后加"test"
  • ftpvuser1
  • ftpvuser2
  • ftpvuser3
  • 用户ftpvuser1 的主目录为 ftphome1 ,只读权限
  • 用户ftpvuser2 的主目录为 ftphome2,只读权限
  • 用户ftpvuser3 的主目录仍为 ftphome2 ,拥有所有权限

步骤:

1.  创建虚拟用户数据库

       1.1 创建文本文件/etc/vsftpd.ftpvuser_list,内容为:          

ftpvuser1
ftpvuser1test
ftpvuser2
ftpvuser2test
ftpvuser3
ftpvuser3test
 
           slmagicbox@ubuntu904server:~$ sudo touch /etc/vsftpd.ftpvuser_list
           slmagicbox@ubuntu904server:~$ echo "ftpvuser1" |sudo tee -a /etc/vsftpd.ftpvuser_list
           slmagicbox@ubuntu904server:~$ echo "ftpvuser1test" |sudo tee -a /etc/vsftpd.ftpvuser_list
           slmagicbox@ubuntu904server:~$ echo "ftpvuser2" |sudo tee -a /etc/vsftpd.ftpvuser_list
           slmagicbox@ubuntu904server:~$ echo "ftpvuser2test" |sudo tee -a /etc/vsftpd.ftpvuser_list
           slmagicbox@ubuntu904server:~$ echo "ftpvuser3" |sudo tee -a /etc/vsftpd.ftpvuser_list
           slmagicbox@ubuntu904server:~$ echo "ftpvuser3test" |sudo tee -a /etc/vsftpd.ftpvuser_list
           slmagicbox@ubuntu904server:~$ sudo cat /etc/vsftpd.ftpvuser_list
           确认显示内容与上面列表的相同。    
     
       1.2 安装db4.6-util工具(Berkeley v4.6 database utilities),生成数据库 /etc/vsftpd_vuser.db
           slmagicbox@ubuntu904server:~$ sudo apt-get install db4.6-util
           slmagicbox@ubuntu904server:~$ sudo db4.6_load -T -t hash -f /etc/vsftpd.ftpvuser_list /etc/vsftpd_vuser.db
           slmagicbox@ubuntu904server:~$ sudo chmod 600 /etc/vsftpd_vuser.db
       

2. 配置PAM文件

       2.1 新建/etc/pam.d/vsftpd.vuser 内容为:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_vuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd_vuser
       slmagicbox@ubuntu904server:/etc/pam.d$ sudo vim /etc/pam.d/vsftpd.vuser
       slmagicbox@ubuntu904server:/etc/pam.d$ cat /etc/pam.d/vsftpd.vuser

      
       2.2 修改配置文件 /etc/vsftpd.conf
             pam_service_name=vsftpd.vuser           #该名字与上面的文件名对应 

3.为虚拟用户创建本地系统用户

       3.1 新建一个系统用户ftpvuser,用户家目录为/home/ftp, 用户登录终端设为/bin/false(该用户不能登录系统) 
      
slmagicbox@ubuntu904server:/etc/pam.d$ sudo useradd ftpvuser -d /home/ftp -s /bin/false
              slmagicbox@ubuntu904server:/etc/pam.d$ sudo chown ftpvuser:ftpvuser /home/ftp
             

4.编辑配置文件/etc/vsftpd.conf

       4.1     
 
listen=YES  #以standalone模式运行vsftpd
anonymous_enable=NO #禁止匿名
dirmessage_enable=YES
示目录下的message消息
xferlog_enable=YES #启用日志
xferlog_file=/var/log/vsftpd.log #设定日志路径
xferlog_std_format=YES #使用标准日志格式
chroot_local_user=YES #限定用户在家目录

guest_enable=YES #启用虚拟用户
guest_username=ftpvuser #虚拟用户帐号
#user_config_dir=/etc/vsftpd_user_conf #先不启用,后面启用时再说明
pam_service_name=vsftpd.vuser #设置pam服务名,上面2.2已经说明
local_enable=YES
secure_chroot_dir=/var/run/vsftpd #忽略

5. 区分虚拟用户权限

       上面的设置,3个虚拟用户都可以正常登录,但是3者的家目录都在/home/ftp,权限都是一样的,接下来我们通过设置来区分3个虚拟的权限。
      
       5.1 首先启用上面配置文件中的user_config_dir项
              user_config_dir=/etc/vsftpd_user_conf   #启用用户配置文件,设定配置文件存放目录
       5.2 创建配置文件存放目录,并新建用户配置文件,文件名与虚拟用户名相同
              slmagicbox@ubuntu904server:~$ sudo mkdir /etc/vsftpd_user_conf
      
slmagicbox@ubuntu904server:~$ cd /etc/vsftpd_user_conf
      
slmagicbox@ubuntu904server:/etc/vsftpd_user_conf$sudo touch ftpvuser1 ftpvuser2 ftpvuser3

      5.3 编辑虚拟用户配置文件
            ftpvuser1内容为:
local_root=/home/ftp/ftphome1
            ftpvuser2内容为:
local_root=/home/ftp/ftphome2
           ftpvuser3内容为:
local_root=/home/ftp/ftphome1
write_enable=YES #开启全局上传(写)权限
anon_world_readable_only=NO #关闭匿名用户只读(下载)权限
anon_upload_enable=YES #开启匿名用户上传权限
anon_mkdir_write_enable=YES #开启匿名用户建目录权限
anon_other_write_enable=YES #开启匿名用户除上传和建目录之外的写权限(如重命名,删除等)

           现在达到我们想要的效果了。^_^



    

你可能感兴趣的:(ftp,vsftp,ubuntu,休闲,虚拟用户)