vsftpd 详细安装

环境:CentOS 6.2 操作系统

1.安装Vsftpd服务相关部件

yum install vsftpd* 

yum install db4*

2.建立Vsftpd服务的宿主用户:

useradd vsftpd -s /sbin/nologin

useradd overlord -s /sbin/nologin

3.修改配置文件/etc/vsftpd/vsftpd.conf

[root@localhost ~]#vi /etc/vsftpd/vsftpd.conf

 

取消下面内容前面的注释或添加

anonymous_enable=YES/NO  是否允许匿名用户访问 

chroot_list_enable=YES   限定用户不可以离开主目录

chroot_list_file=/etc/vsftpd/chroot_list 

loca_enable=YES/NO 本地用户是否可以访问 注:如果为NO 则所有虚拟用户都将不能访问原因:虚拟用户访问在主机上其实是以本地用户访问的

pam_service_name=vsftpd  pam认证文件名 在/etc/pam.d/vsftpd

guest_enable=YES    启用虚拟用户功能

guest_username=ftp  指定虚拟用户的宿主用户 –centos 里面已经有内置的ftp用户了(注:此用户在chroot_list_file=/etc/vsftpd/chroot_list文件里所指定的用户)

user_config_dir=/etc/vsftpd/vuser_conf 设置虚拟用户个人vsftp的服务配置文件

(此文件后面不能出现空格)

 

4.查看是否安装 db4 db4-utils 

[root@localhost ~]#rpm -qa|grep db4  运行后出现下面内容 说明已经安装可以使用db_load命令(主要是 db4-utils)

db4-devel-4.3.29-10.el5_5.2

db4-4.3.29-10.el5_5.2

db4-devel-4.3.29-10.el5_5.2

db4-4.3.29-10.el5_5.2

db4-tcl-4.3.29-10.el5_5.2

db4-utils-4.3.29-10.el5_5.2

[root@localhost ~]#

 

如果没安装则要安装db4-utils

4.1安装db4-utils

[root@localhost ~]#yum -y install db4-utils

 

5. 创建 chroot_list_file=/etc/vsftpd/chroot_list文件

[root@localhost ~]#vi /etc/vsftpd/chroot_list (编辑文件把 /etc/vsftpd/vsftpd.conf 中guest_username的值写到文件中本例中为 ftp)

 或者直接按下面进行操作

[root@localhost ~]#touch /etc/vsftpd/chroot_list

[root@localhost ~]# echoftp >> /etc/vsftpd/chroot_list  (此处ftp 也要是/etc/vsftpd/vsftpd.conf中的guest_username的值)

 

 

6.创建虚拟用户目录(密码文本)

[root@localhost ~]#vi /etc/vsftpd/vftpuser.txt (奇数行为用户名 ,偶数行为密码)

本文中添加如下(用cat 命令查看)

[root@localhost ~]#cat /etc/vsftpd/vftpuser.txt

zz

aaaaa

ftp1

zzzzz

[root@localhost ~]#

 

7.生成虚拟用户的db文件

[root@localhost ~]#db_load -T -t hash -f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db

 

8.生成虚拟用户的认证文件

[root@localhostvsftpd]# vi /etc/pam.d/vsftpd

 

#%PAM-1.0

session    optional    pam_keyinit.so    force revoke

auth       required     pam_listfile.so item=user sense=denyfile=/etc/vsftpd/ftpusers onerr=succeed

auth       required     pam_shells.so

auth       include      system-auth

account    include     system-auth

session    include     system-auth

session    required    pam_loginuid.so

 

注释掉/etc/pam.d/vsftpd中所有的内容 反正已经不要本地用户的认证了

不然就会出现

Aug 23 16:03:32 AY1306281158002549d4Z vsftpd: pam_unix(vsftpd:auth): check pass; user unknown
Aug 23 16:03:32 AY1306281158002549d4Z vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=xxx rhost=xxx

就会出现这样类似的错误,找了我半天才发现这个问题

特别注意 以下区别 
32位系统增加以下两句:
auth      required     pam_userdb.so db=/etc/vsftpd/vftpuser
account   required     pam_userdb.so db=/etc/vsftpd/vftpuser
64位系统增加以下两句:
auth   required    /lib64/security/pam_userdb.so db=/etc/vsftpd/vftpuser

account required    /lib64/security/pam_userdb.sodb=/etc/vsftpd/vftpuser

注:db=/etc/vsftpd/vftpuser 中的vftpuser 是你生成的虚拟用户的db文件

 

9.创建每个虚拟用户自己的配置文件,配置文件的路径是/etc/vsftpd/vsftpd.conf中的

user_config_dir=/etc/vsftpd/vuser_conf路径

在 /etc/vsftpd/vuser_conf/下面创建以用户名为名称的文件(名称是/etc/vsftpd/vftpuser.txtx 下面的奇数行)

 

[root@localhostvsftpd]# cat /etc/vsftpd/vftpuser.txtx

zz

aaaaa

ftp1

zzzzz

 

[root@localhostvsftpd]# mkdir vuser_conf

[root@localhostvsftpd]# vi /etc/vsftpd/vuser_conf/zz

 

内容如下 

local_root=/var/www(虚拟用户的根目录根据实际修改)
write_enable=YES (可写)
download_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_umask=022

 

10.给文夹权限(否则不能上传 权限可自定 本人给的是 777)

[root@localhostvsftpd]# chmod 777 /var/www/

 

11.重启vsftpd

[root@localhostvsftpd]# service vsftpd restart

 

到此安装配置完成 如果出现连接被 同位体重置 或其它错误 请查看SELinux的当前模式


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是在Ubuntu中使用Dockerfile安装vsftpd详细步骤: 1. 首先,在本地计算机上创建一个文件夹,用于存储Dockerfile和相关文件。 2. 在该文件夹中创建一个名为Dockerfile的文件,并在其中输入以下内容: ``` FROM ubuntu:18.04 RUN apt-get update && \ apt-get install -y vsftpd RUN mkdir /ftp RUN chmod a-w /ftp RUN useradd -d /ftp ftpuser RUN echo "ftpuser:password" | chpasswd RUN echo "local_root=/ftp" >> /etc/vsftpd.conf RUN echo "write_enable=YES" >> /etc/vsftpd.conf RUN echo "local_umask=022" >> /etc/vsftpd.conf RUN echo "user_sub_token=$USER" >> /etc/vsftpd.conf RUN echo "local_enable=YES" >> /etc/vsftpd.conf RUN echo "chroot_local_user=YES" >> /etc/vsftpd.conf RUN echo "pasv_enable=YES" >> /etc/vsftpd.conf RUN echo "pasv_min_port=40000" >> /etc/vsftpd.conf RUN echo "pasv_max_port=40100" >> /etc/vsftpd.conf RUN echo "listen_ipv6=NO" >> /etc/vsftpd.conf EXPOSE 20 21 40000-40100 CMD ["/usr/sbin/vsftpd", "/etc/vsftpd.conf"] ``` 上述Dockerfile文件定义了一个基于Ubuntu 18.04的镜像,并在其中安装vsftpd。还定义了一些vsftpd配置选项,以及将端口暴露给主机。 3. 接下来,创建一个名为vsftpd.conf的文件,并在其中输入以下内容: ``` anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES ``` 此文件设置了vsftpd的配置选项。 4. 然后,通过运行以下命令在本地计算机上构建镜像: ``` docker build -t vsftpd . ``` 5. 构建完成后,可以使用以下命令在容器中运行vsftpd: ``` docker run -p 20:20 -p 21:21 -p 40000-40100:40000-40100 -d vsftpd ``` 这将在容器中启动vsftpd服务器,并将主机的端口20、21和40000-40100映射到容器中的相应端口。 6. 现在,可以使用FTP客户端连接到主机的IP地址,并使用用户名“ftpuser”和密码“password”登录。您应该能够访问/ftp文件夹,并在其中上传和下载文件。 这是在Ubuntu中使用Dockerfile安装vsftpd详细步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值