vsftp虚拟用户配置

安装vsftp时没有db_load这个命令
该命令需要 db4-utils 的包
正常情况下,执行

引用
rpm -qa|grep db4

会有3个包

引用
db4-devel-4.3.29-9.fc6
db4-utils-4.3.29-9.fc6
db4-4.3.29-9.fc6


如果缺少,则安装相应的包,rpm安装即可

centos上可以通过

引用
yum install db4-utils


即可安装
其它服务器上,则要到安装光盘上找,或者去网上下载

 

  为vsftp建立虚拟用户

   在RedHat AS里,是自带了vsftpd为系统提供了一个ftp服务,但在实际应用中根据自己的需要还是要做不少的配置。
  我们知道,在建立vsftpd用户时,我们一般是在linux下建立用户useradd的方式来访问ftp,但有时我们只想提供ftp服务,而避免用户用ftp的帐号去登录linux,采用一般的方式只能是限制该用户的访问权限,但还是避免不了用户登录进linux系统,所以比较好的方法是用vsftpd的虚拟用户(virtual users)。
  配置的步骤如下
  1) Create the virtual users database.(建立虚拟用户数据库)
  大家看一下logins.txt文件的格式,它的内容是:
  tom
  foo
  fred
  bar
  意思是说用户tom的密码是foo,用户fred的密码是bar,这就是虚拟用户的信息,大家可以按
  <用户名>
  <密 码>
  的格式来建立自己的虚拟用户群。
  然后以root用户登录系统,建立用户数据库:
  db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
  该命令会建立一个文件 /etc/vsftpd_login.db ,同时改变它的文件属性:
  chmod 600 /etc/vsftpd_login.db 
  2) Create a PAM file which uses your new database.(建立PAM文件,告诉系统你要使用自己的数据库了)
  看看另一个文件vsftpd.pam,它有两行内容:
  auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
  account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
  这是告诉系统,我将用新的用户授权库了。ok,把这个文件copy到/etc/pam.d/ftp:
  cp vsftpd.pam /etc/pam.d/ftp
  3) Set up the location of the files for the virtual users(为虚拟用户建立文件夹)
  useradd -d /home/ftpsite virtual
  ls -ld /home/ftpsite
  (会得到以下输出):
  drwx------ 3 virtual virtual 4096 Jul 30 00:39 /home/ftpsite
然后:
  cp /etc/hosts /home/ftpsite
  chown virtual.virtual /home/ftpsite/hosts
  4)修改vsftpd.conf文件
  文件在/etc/vsftpd/vsftpd.conf,在后面加上:
  anonymous_enable=NO
  local_enable=YES
  write_enable=NO (注:这里可按需求设置)
  anon_upload_enable=NO
  anon_mkdir_write_enable=NO
  anon_other_write_enable=NO
  chroot_local_user=YES
  guest_enable=YES
  guest_username=virtual
  user_config_dir=/etc/vsftpd_user_conf

  5)建立用户的权限
  先mkdir /etc/vsftpd_user_conf
  //开放tom和fred的读权限 
  #echo "anon_world_readable_only=NO">/etc/vsftpd_user_conf/tom 
  #echo "anon_world_readable_only=NO">/etc/vsftpd_user_conf/fred 
      这样就可以用读权限了,能看到目录和文件。
  6)重启vsftpd
  service vsftpd restart
  ok,用tom用户登录ftp看看,是不是已经可以了

特别注意
1。如果要删除掉一个虚拟用户,先在logins.txt中删除用户对应的用户名和密码,然后删除vsftpd_login.db,重新运行db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
2。如果只是要修改用户的密码,只需重新运行db_load就可以
3。如果要改变用户的其它配置,只需修改用户的配置文件

你可能感兴趣的:(linux,应用服务器,centos,redhat,Security)