centos编译vsftpd
⑴ 如何启动centos的ftp服务启动失败报500错误,没有vsftpd.config这个文件
linux一键安装web环境全攻略 工具:update_source.sh 使用sftp功能上传下载文件 工具:auto_fdisk.sh 手把手教你nginx下如何添加伪静态 工具:install_vnc_server.sh Redhat5和Centos5安装vncserver实现图形化访问 工具:ECS自动迁移工具 ECS Debian系统sudo命令安装 ECS Linux系统编译安装apache平滑重启 ECS Linux系统上安装go语言工具 apache开启伪静态模块 ECS Apache的winnt_accept: Asynchronous AcceptEx failed问题 Mysql事件调度器使用介绍 SUSE安装软件出现报错无法连接公网源地址 ECS Centos 通过 yum whatprovides 查找哪个包提供 SO 动态库文件 gentoo emerge使用介绍 discuz linux系统安装教程 ECS Linux SUSE安装VNC SUSE使用在线安装zypper install 提示denied ECS linux架设Samba服务 ECS Linux挂载数据盘报错 ECS centos 6.6编译安装nginx ECS Linux服务器一键安装包的mysql启动失败 centos7.0使用yum安装mysql报错 ECS Linux NTP手动更新报错 ECS Linux服务器安装LNMP环境 ubuntu安装报错Reading package lists... Error! 解决方案 ECS Linux使用一键安装脚本环境后如何更换升级php版本 ECS Centos7 系统安装图形化桌面 ECS Linux系统AHM安装说明 ECS centos7通过yum安装mysql 5.6 工具:auto_fdisk_ssd.sh ECS Linux 安装配置openssl ECS CentOS7系统安装配置iptables防火墙 ECS SUSE10环境下通过YaST安装软件 ECS Ubuntu14.04 配置软件源解决安装依赖包问题 ECS Linux系统通过filezilla软件使用ssh协议上传下载文件 ECS Linux CentOS 6.5安装桌面环境后桌面环境无法正常启动 ECS Debian 系统安装mysql数据库 ECS Linux一键环境包Nginx配置密码访问网站 ECS Linux系统yum安装命令无法找到 ECS Linux一键安装包安装之后mysql执行命令错误 yum update 出现报错Transaction Check Error: ECS Linux系统安装配置Tomcat方法 ECS linux 搭建NFS服务实现磁盘共享 ECS ubuntu 14.04 安装MySQL Server提示mysql-server : Depends: mysql-server-5.5 ECS OpenSUSE 安装配置vsftpd ECS 内网ubuntu 14.04系统无法安装openjdk Coreos 增加阿里云Docker镜像库 ECS Linux centos7环境下安装Mysql数据库的方法 Linux系统服务器ftp账号更改家目录方式 ECS Linux安装配置Squid代理服务 Centos7安装使用wkhtmltopdf实现html页面转换成pdf文档 Netperf网络性能的测量工具介绍 opensuse系统安装nginx方法 微软JDBC驱动Bug导致用户Linux环境连接SQLServer RDS出现异常 ECS Linux服务器安装JDK配置java环境
⑵ centos7.2上面怎么安装vsftpd
vsftpd是Linux下比较着名的FTP服务器,搭建FTP服务器当然首选这个。
本文介绍了在CentOS 6.4下安装vsftpd、配置虚拟用户登录FTP的过程。
正文:
一:安装vsftpd
查看是否已经安装vsftpd
rpm -qa | grep vsftpd
如果没有,就安装,并设置开机启动
yum -y install vsftpd
chkconfig vsftpd on
二:基于虚拟用户的配置
所谓虚拟用户就是没有使用真实的帐户,只是通过映射到真实帐户和设置权限的目的。虚拟用户不能登录CentOS系统。
修改配置文件
打开/etc/vsftpd/vsftpd.conf,做如下配置
anonymous_enable=NO //设定不允许匿名访问
local_enable=YES //设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
chroot_list_enable=YES //使用户不能离开主目录
ascii_upload_enable=YES
ascii_download_enable=YES //设定支持ASCII模式的上传和下载功能
pam_service_name=vsftpd //PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
以下这些是关于vsftpd虚拟用户支持的重要配置项,默认vsftpd.conf中不包含这些设定项目,需要自己手动添加
guest_enable=YES //设定启用虚拟用户功能
guest_username=ftp //指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
user_config_dir=/etc/vsftpd/vuser_conf //设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名
进行认证
首先,安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包。
yum install db4 db4-utils
然后,创建用户密码文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用户名,偶行是密码
test
123456
接着,生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
随后,编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,再增加以下两句:
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
最后,创建虚拟用户配置文件
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/test //文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效
内容如下
local_root=/ftp/www //虚拟用户根目录,根据实际情况修改
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
设置Selinux
setsebool -P ftp_home_dir=1 //设置ftp可以使用home目录
sersebool -P allow_ftpd_full_access=1 //设置ftp用户可以有所有权限
设置FTP根目录权限
mkdir /ftp/www //创建目录
chmod R 755 /ftp
chmod R 777 /ftp/www
最新的vsftpd要求对主目录不能有写的权限所以ftp为755,主目录下面的子目录再设置777权限
设置防火墙
打开/etc/sysconfig/iptables
在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:
-A INPUT -m state --state NEW -m tcp -p -dport 21 -j ACCEPT
然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:
service iptables restart
OK,运行“service vsftpd start”,你就可以访问你的FTP服务器了。
⑶ linux邮件服务,如何建立虚拟用户访问ftp
vsftpd配置虚拟用户步骤:
tar vsftpd-2.0.6.tar.gz
修改 builddefs.h
#define VSF_BUILD_PAM
#define VSF_BUILD_SSL
#define VSF_BUILD_TCPWRAPPERS
make && make install
复制安装目录下的vsftpd.conf到/etc目录
修改 /etc/vsftpd.conf
#------------------------------
ftpd_banner="welcome to Hanqinet FTP!"
listen=YES
listen_port=21
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
guest_enable=YES
#虚拟帐号对应的系统帐号,名称为ftp
guest_username=ftp
#虚拟用户的配置文件目录,具体配置文件为用户名同名的文件
user_config_dir=/etc/vsftpd/vsftpd_user_conf
#不允许用户更改根目录
#chroot_local_user=YES
#--------------注意
#tcp_wrappers=YES
#pasv_enable=YES
#使用pam验证,对应与 /etc/pam.d/目录下的文件名
pam_service_name=vsftpd.pam
max_clients=500
max_per_ip=10
idle_session_timeout=600
data_connection_timeout=120
connect_timeout=60
accept_timeout=60
#设置ftp使用的端口 和防火墙设置有关
pasv_min_port=30000
pasv_max_port=30999
#-----------------------------
安装目录下redhat目录中的vsftpd.pam到/etc/pam.d/
删除/etc/pam.d/vsftpd.pam中的内容,并插入两行内容
#-----------------------------
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
#-----------------------------
创建虚拟用户对应的系统帐号 ftp
groupadd ftp
useradd -d /var/ftp -g ftp ftp
chown root:root /var/ftp
#chmod og-w /var/ftp
创建虚拟用户配置目录
mkdir /etc/vsftpd/vsftpd_user_conf
在此目录下生成对应用户名的配置文件
例如:
允许上传、下载、删除
local_root=/var/www/html/ #对应目录需要guest用户有访问权限
anon_world_readable_only=NO
write_enable=YES #写权限
anon_upload_enable=YES #开启虚拟用户上传权限
anon_other_write_enable=YES #开启虚拟用户删除权限
anon_mkdir_write_enable=YES #开启虚拟用户写入和创建权限
anon_umask=022
下载、上传,但不能删除
local_root=/var/www/html/
anon_world_readable_only=NO
#写权限
write_enable=YES
#开启虚拟用户上传权限
anon_upload_enable=YES
#开启虚拟用户删除权限
anon_other_write_enable=NO
#开启虚拟用户写入和创建权限
anon_mkdir_write_enable=YES
#开启虚拟用户上传后文件权限,默认文件是700权限,022后变为755权限
anon_umask=022
只下载
local_root=/var/www/html/
anon_world_readable_only=NO
创建虚拟用户数据库/etc/vsftpd/vsftpd_login.db
先创建明文数据文件,格式如下
用户名1
密码1
用户名2
密码2
保存为 vsftp_login.txt
使用db_load生成登录数据库文件
db_load -T -t hash -f vsftp_login.txt /etc/vsftpd/vsftpd_login.db
如果系统没有db_load文件,可在安装盘的db4-utils-*.rpm中找到
问题,如何删除虚拟用户,修改虚拟用户?
删除vsftpd_login.db重新生成,对于大量ftp用户可使用mysql。
启动vsftpd
/usr/local/sbin/vsftpd /etc/vsftpd.conf &
启动脚本也可以从rpm包中取得
/etc/rc.d/init.d/vsftpd
make /etc/vsftpd
ln -s /etc/vsftpd.conf /etc/vsftpd/vsftpd.conf
ln -s /usr/local/sbin/vsftpd /usr/sbin/vsftpd
在centos5.4上直接编译vsftp出现错误,无法解决,后来干脆用yum直接安装了一个,然后采用系统虚拟用户的方式,也很方便。
方法如下:
yum install vsftpd
安装到 /etc/vsftpd/下,系统自动生成ftp用户,作为匿名登录用户。
我的ftp需求,关闭匿名登录,新增abc用,只允许登录后下载,所以先创建abc用户
adser -d /home/abc -g ftp -s /sbin/nologin abc
设置abc的ftp登录密码
passwd abc
配置vsftpd.conf,主要内容如下
anonymous_enable=NO
local_enable=YES
write_enable=NO
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO.
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
listen_address=192.168.1.1
listen_port=21
pasv_min_port=30000
pasv_max_port=30999
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
说明: /etc/vsftpd/chroot_list 需手工创建,然后将abc加入其中,确保abc登录后目录被锁定在自己的home中。
⑷ centos搭建ftp服务
一:安装FTP
输入vsftpd -v判断是否安装成功
启动/停止/重启FTP
二:添加ftp用户
1:创建ftp用户并设置密码
2:配置该用户仅能通过 FTP 访问
三:FTP配置
1:FTP的配置文件在/etc/vsftpd/vsftpd.conf,找到以下配置并修改或添加
2:配置可以登录ftp用户
在/etc/vsftpd/user_list文件中添加可以登录ftp的用户:
3:配置ftp用户登录后访问的目录
在/etc/vsftpd目录下新建一个userconfig目录,在userconfig目录下配置用户的登录目录,例:注意:文件名就是你想要配置的用户名称
在vsftpd文件中添加
配置完成后重启FTP更新配置
四:创建测试目录及文件
创建目录
设置访问权限:
创建一个测试文件,并在里面写上this is test!!!
五:防火墙配置
禁用防火墙或者开启21端口和30000端口
(1):开启21端口
530问题
1.cat /etc/passwd,查看你登陆的账户主目录和登陆shell对应的是什么,我的是/sbin/nologin
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
2.查看cat /etc/shells是否有你用户的主目录和登陆shell,没有进行添加,保存,退出。
通过其他服务器链接ftp
先安装ftp指令 yum install ftp
连接 ftp 192.168.6.36
⑸ CentOS7安装及配置vsftpd-精简绝版
备注:如果后期想变更此用户的上传目录到
(/run/media/root/xxx/wwwroot/ xxx.org ),
请使用下面的命令:
输入怎么想设置的密码则可。
(1)当我们念启携限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
(2)从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,
则该用户的主目录不能再具仔伏有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录
的写权限,注意把目录替换成你自己的。
或者你旁拦可以在vsftpd的配置文件中增加下列一项:
allow_writeable_chroot=YES
(3)使用cmd命令容器发生
500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list错误
解决:修改vsftpd.conf配置文件,注释以下内容
(4)本地使用ftpClient调试是发生
java.net.SocketException: Connection reset异常
解决:在本地电脑执行以下命令
netsh advfirewall set global StatefulFTP disable
# 启动服务
systemctl start vsftpd.service
# 停止服务
systemctl stop vsftpd.service
# 重启服务
systemctl restart vsftpd.service
# 服务状态查看
systemctl status vsftpd.service
# 设置开机启动
systemctl enable vsftpd