您的位置:首页 > 编程语言 > PHP开发

vsftp 虚拟用户配置

2014-12-04 17:20 309 查看
安装vsftp时没有db_load这个命令

该命令需要 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。如果要改变用户的其它配置,只需修改用户的配置文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: