首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>服务器类>Linux服务器>资讯:Linux系统Vsftpd安装教程和创建虚拟用户

Linux系统Vsftpd安装教程和创建虚拟用户

www.jz123.cn  2012-09-07   来源:   站长家园    责任编辑(袁袁)    我要投递新闻

  Vsftpd 是一款轻量级并有着安全与简易等特性的FTP服务器程序,破受欢迎。在 Linux 中一旦配置好 Vsftpd 环境就可以一劳永逸,任意的迁移到类似的服务器之上,因此我们对配置过程做个系统的了解也是有必要的。

  本文的任务是创建两个虚拟账户,第一个账户(bugxm_admin)拥有可读写指定目录文件、不可登陆系统权限,第二个(bugxm_general)只拥有只读被绑定目录中文件的权限,依然不能登陆系统。新建一个虚拟用户并且合理分配权限、绑定目录,这和IDC商的虚拟主机效果是一样的。为了方便,直接采用的 Root 账户操作。

  1、安装 Vsftpd 程序,为了方便我们采用以下方式进行自动安装

  yum install -y vsftpd

  2、创建“bugxm_admin”与“bugxm_general”这两个账户,密码暂定为“123456”,其中奇数行表示账号,偶数行表示密码。

  vi /etc/vsftpd/vm_user.txt

  bugxm_admin

  123456

  bugxm_general

  123456

  2-1、创建 Vsftpd 认证文件

  db_load -T -t hash -f /etc/vsftpd/vm_user.txt /etc/vsftpd/vm_user.db

  注: 执行上条命令若提示:“bash: db_load: command not found”,请安装“db4-utils”,具体操作如下

  yum install -y db4 db4-utils

  注:如果出现“db_load: unexpected end of input data or key/data pair、db_load: odd number of key/data pairs”提示,请在 vm_user.txt 最后一行添加空行,即回车一下。

  3、编辑虚拟用户需要用到的PAM认证配置文件

  rm -f /etc/pam.d/vsftpd

  vi /etc/pam.d/vsftpd

  3-1、PAM认证配置文件输入以下内容

  auth required pam_userdb.so db=/etc/vsftpd/vm_user

  account required pam_userdb.so db=/etc/vsftpd/vm_user

  4、给 bugxm_admin、bugxm_general 这两个账户增加属性,控制访问目录、权限等,首先创建 bugxm_admin 账户

  mkdir /etc/vsftpd/users

  vi /etc/vsftpd/users/bugxm_admin

  4-1、输入以下内容

  local_root=/data/htdocs/bugxm_admin

  write_enable=YES

  anon_umask=022

  anon_world_readable_only=NO

  anon_upload_enable=YES

  anon_mkdir_write_enable=YES

  anon_other_write_enable=YES

  4-2、以下是对上面这步操作的注释补充

  local_root=/data/htdocs/bugxm_admin #根目录绑定

  write_enable=YES #表示拥有可写权限

  anon_umask=022 #上传文件的权限,022表示文件夹755、文件644权限

  anon_world_readable_only=NO #表示用户具有下载权限

  anon_upload_enable=YES #表示用户有权限上传文件

  anon_mkdir_write_enable=YES #表示用户具有创建和删除目录的权限

  anon_other_write_enable=YES #表示用户具有文件改名和删除文件的权限

  4-3、创建 bugxm_general 用户

  vi /etc/vsftpd/users/bugxm_general

  4-4、输入以下内容

  local_root=/data0/htdocs/bugxm_general

  anon_world_readable_only=NO

  5、两个用户创建完成之后,开始配置 Vsftpd。

  vi /etc/vsftpd/vsftpd.conf

  5-1、为安全考虑,我们配置不允许匿名访问。

  默认:anonymous_enable=YES

  改成:anonymous_enable=NO

  5-2、YES 表示用户不能离开被我们指定的上级的任何目录。

  默认:#chroot_list_enable=YES

  改成:chroot_list_enable=YES

  5-3、允许用户使用ASCII上传文件。

  默认:#ascii_upload_enable=YES

  改成:ascii_upload_enable=YES

  5-4、允许用户使用ASCII下载文件。

  默认:#ascii_download_enable=YES

  改成:ascii_download_enable=YES

  5-5、在末尾添加以下内容

  guest_enable=YES

  guest_username=ftp

  user_config_dir=/etc/vsftpd/users

  6、重新启动 Vsftpd (service vsftpd restart),出现了 500 OOPS: could not open chroot() list file:/etc/vsftpd/chroot_list 错误,执行以下操作就可以解决问题。

  touch /etc/vsftpd/chroot_list

  service vsftpd restart

  Shutting down vsftpd: [ OK ]

  Starting vsftpd for vsftpd: [ OK ]

  6-1、用软件连接 ftp 服务器时,出现了以下问题,防火墙开启 21 端口就能得到解决。

  状态: 正在连接 192.168.182.128:21.

  错误: 连接超时

  错误: 无法连接到服务器

  状态: 正在等待重试。

  6-2、在防火墙中开启 21 端口

  vi /etc/sysconfig/iptables

  任意位置添加以下内容

  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21-j ACCEPT

  重启防火墙

  /sbin/service iptables restart

  6-3、再次连接时出现了不能切换目录错误“500 OOPS: cannot change directory:/data/htdocs/bugxm_admin”,执行以下操作即可解决。

  setsebool -P ftpd_disable_trans 1

  service vsftpd restart

  6-4、终于连接上了!

  状态: 读取目录列表。

  命令: PORT 192,168,182,1,38,172

  响应: 200 PORT command successful. Consider using PASV.

  命令: LIST

  响应: 150 Here comes the directory listing.

  响应: 226 Directory send OK.

  状态: 列出目录成功

  6-5、登陆 bugxm_admin 账户试试能否上传文件,臭虫小明这里上传文件还存在权限问题。

  4上传错误:553 Could not create file.

  解决方法:

  chmod 770 -R /data/htdocs

  chown root:ftp -R /data/htdocs

上一篇:认识linux服务(关闭你不需要的服务) 下一篇:低内核版Linux开启NTP服务导致服务器重启

评论总数:0 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图