木一 发表于 2015-11-6 12:37:08

CentOS6.0 vsftp+虚拟用户一键安装

  新建一个shell文档
  touch vsftpdinstall.sh
  编辑vsftpdinstall.sh
  vi vsftpdinstall.sh
  添加以下内容:
  
  pwd
  string=`pwd`
  #安装vsftpd
  yum install -y vsftpd
  service vsftpd start
  chkconfig vsftpd on
  yum install -y db4*
  #创建一个文件
  cd /home
  touch virtual         
  chmod 755 virtual
  ed -s ./virtual <<EOF
  a
  vs
  vs123
  all
  all123
  .
  w
  q
  EOF
  db_load -T -t hash -f /home/virtual /etc/virtual.db
  chmod 600 /etc/virtual.db
  #修改配置文件
  cd /etc/pam.d
  sed -i 's/^/#&/g' vsftpd
  sed -i '$ a\auth required /lib/security/pam_userdb.so db=/etc/virtual\naccountrequired   /lib/security/pam_userdb.so db=/etc/virtual' vsftpd
  #创建虚拟用户
  useradd -d /home/virtualuser -s /sbin/nologin virtualuser
  passwd virtualuser
  chown -R virtualuser:virtualuser /home/virtualuser
  chmod -R 755 /home/virtualuser
  #在/home/virtual创建用户目录
  mkdir /home/virtualuser/vs
  mkdir /home/virtualuser/all
  chmod 777 /home/virtualuser/vs
  chmod 777 /home/virtualuser/all
  mkdir /etc/vsftpd_user_conf
  cd /etc/vsftpd_user_conf
  touch /etc/vsftpd_user_conf/vs
  touch /etc/vsftpd_user_conf/all
  #编辑文件vs
  ed -s ./vs <<EOF
  a
  virtual_use_local_privs=YES
  write_enable=YES
  anon_world_readable_only=NO
  anon_upload_enable=YES
  anon_mkdir_write_enable=YES
  anon_other_write_enable=YES
  local_root=/home/virtualuser/vs
  .
  w
  q
  EOF
  #编辑文件all
  ed -s ./all <<EOF
  a
  virtual_use_local_privs=YES
  write_enable=YES
  anon_world_readable_only=NO
  anon_upload_enable=YES
  anon_mkdir_write_enable=YES
  anon_other_write_enable=YES
  local_root=/home/virtualuser/all
  .
  w
  q
  EOF
  #修改vsftpd配置文件vsftpd.conf
  cd /etc/vsftpd
  mv vsftpd.conf vsftpd.conf.backup
  touch vsftpd.conf
  ed -s ./vsftpd.conf <<EOF
  a
  listen=YES
  anonymous_enable=NO
  dirmessage_enable=YES
  xferlog_enable=YES
  xferlog_file=/var/log/vsftpd.log
  xferlog_std_format=YES
  chroot_local_user=YES
  guest_enable=YES
  guest_username=virtualuser
  user_config_dir=/etc/vsftpd_user_conf
  pam_service_name=vsftpd
  local_enable=YES
  secure_chroot_dir=/var/run/vsftpd
  .
  w
  q
  EOF
  #创建一个/var/run/vsftpd文件夹
  mkdir /var/run/vsftpd
  service vsftpd restart
保存退出!  
  chmod 755 vsftpdinstall.sh
  ./vsftpdinstall
  执行完毕就可以用ftp访问了。
  默认用户为文件virtual 里面的用户名密码,基数行为用户名,偶数行为密码。
  如要添加或其他用户,在文件virtual里面添加,再执行
  db_load -T -t hash -f /home/virtual /etc/virtual.db
  再在/etc/vsftpd_user_conf中添加对应的配置文件,重启vsftpd
  
  不同用户可以有不同权限,权限设置如下
  
virtual_use_local_privs参数
当 virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;
当 virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。
当 virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES 时,虚拟用户不能浏览目录,只能上传文件,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO 时,虚拟用户只能下载文件,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES 时,虚拟用户只能上传和下载文件,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES 时,虚拟用户只能下载文件和创建文件夹,无其他权限。
当 virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES 时,虚拟用户只能下载、删除和重命名文件,无其他权限。

  
  

         版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: CentOS6.0 vsftp+虚拟用户一键安装