FTP看似一个简单的服务,但在Linux上配置起来往往并没那么容易。ITGeeker技术奇客分享简单而使用的CentOS FTP配置服务,让你不在为架设FTP服务而困扰。
一、 vsftpd安装
一般在CentOS上都自动安装了vsftd,若没有安装则可以使用以下步骤进行安装
yum -y install vsftpd service vsftpd start chkconfig vsftpd on touch /var/log/vsftpd.log # 创建vsftp的日志文件
在CentOS中,这样就可以完成了一个简单的匿名FTP的搭建。你可以通过文件资源管理器访问 ftp://YOURIPADDRESS 来进行访问,这个时候你可以看到里面有一个目录“pub”,其它什么都不能干。
二、 vsftpd虚拟用户配置
1. 编辑配置文件vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #设定不允许匿名访问 local_enable=YES #设定本地用户可以访问 chroot_list_enable=YES #使用户不能离开主目录 xferlog_file=/var/log/vsftpd.log #设定vsftpd的服务日志 ascii_upload_enable=YES ascii_download_enable=YES #设定支持ASCII pam_service_name=vsftpd #PAM认证文件名,PAM将根据/etc/pam.d/vsftpd进行认证
以下这些是关于Vsftpd虚拟用户支持的重要CentOS FTP服务配置项目。
默认vsftpd.conf中不包含这些设定项目,需要自己手动添加CentOS FTP服务配置。
guest_enable=YES #设定启用虚拟用户功能。 guest_username=ftp #指定虚拟用户的宿主用户。-CentOS中已经有内置的ftp用户了 user_config_dir=/etc/vsftpd/vuser_conf #设定虚拟用户个人vsftp的配置文件存放路径。存放虚拟用户个性化的配置文件名,和虚拟用户名相同
2. 创建chroot list,将用户ftp加入其中
touch /etc/vsftpd/chroot_list
echo ftp >> /etc/vsftpd/chroot_list
3. 进行虚拟用户认证配置
安装Berkeley DB工具,后面找不到db_load的问题就是没有安装这个软件包的原因。
yum install db4 db4-utils
然后,创建用户密码文本vuser_passwd.txt
vi /etc/vsftpd/vuser_passwd.txt ftpuser1 ftppass1 ftpuser2 ftppass2
#注意奇数行是用户名,偶行是密码
生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,并增加以下两行
vi /etc/pam.d/vsftpd auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
现在可以创建虚拟用户个性化FTP服务配置文件
mkdir /etc/vsftpd/vuser_conf/ vi /etc/vsftpd/vuser_conf/ftpuser1 local_root=/opt/var/ftp1 #虚拟用户的根目录(根据实际修改) 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.建立目录和设定权限
mkdir /opt/var/ftp/ftpuser1 #给刚建立的用户创建目录 chmod 777 /opt/var/ftp/ftpuser1 #设定目录权限
5. 启动vsftp服务
service vsftpd restart
CentOS上的FTP服务假设完毕!!!
按照教程设置完后 550…只能看到一个pub 无权限.
能具体一点吗?把错误信息粘贴过来看看。
按照你的教程来的,还是不能连接。
一定要细致检查配置,这是我配置成功后,记录下的每一步。
Starting vsftpd for vsftpd: 500 OOPS: vsftpd: not configured for standalone, must be started from inetd
vsftp的确问题挺多,建议你用MySecureShell吧,是sftp更安全,而且安装配置都很方便。http://mysecureshell.free.fr/forum/
centos7 测试后无效,登录上去看到一个叫 pub 的文件夹,然后也不能删除,也不能上传
如果能登陆怎么已经安装成功,删除之类的要看你的权限设置
5. 设置FTP用户账号。设置成功后,即可通过该账号登录FTP服务器。
(1)设置FTP用户的账号,例如账号为“ftpuser1”,目录为/home/ftpuser1,且设置不允许通过ssh登录。
[root@VM_250_202_tlinux ~]# useradd -m -d /home/ftpuser1 -s /sbin/nologin ftpuser1
(2)设置账号对应的密码,例如密码为“ftpuser1”。
[root@VM_250_202_tlinux ~]# passwd ftpuser1
没有添加用户进去
useradd -d /mnt/e/wwwroot/ftp/ftpuser1 -s /sbin/nologin -M ftpuser1
chown -R ftpuser1 /mnt/e/wwwroot/ftp/ftpuser1
chown -R 777 /mnt/e/wwwroot/ftp/ftpuser1
passwd ftpuser1
–
将这个加上就可以上了
# 启动ftp服务
service vsftpd start
# 查看ftp服务状态
service vsftpd status
# 重启ftp服务
service vsftpd restart
# 关闭ftp服务
service vsftpd stop