linux下配置FTP服务器

ftp的配置文件主要有三个,在类redhat系统中位于/etc/vsftpd/目录下,分别是:
ftpusers    该文件用来指定哪些用户不能访问ftp服务器。
user_list   该文件用来指示的默认账户在默认情况下不能访问ftp(类似于ftpusers,但是它可以把作用反过来,只有这些用户可以访问ftp)
vsftpd.conf   vsftpd的主配置文件

下面讲配置实例:

匿名配置法(只能匿名下载,不能修改和上传,默认目录在/var/ftp)
anonymous_enable=YES
local_enable=YES
write_enable=NO


用户名配置法
anonymous_enable=NO
chroot_list_enable=NO
chroot_local_user=YES

(为了防止访问服务器中自己目录外的文件。建议设置chroot_list_enable=NO,chroot_local_user=YES,这样的话所有的用户均不能切换到其他目录。)

在建立真实用户的时候可以这样 useradd -s /sbin/nologin scott(这样可以禁止真实用户登录)

如果客户端出现500 OOPS: cannot change directory:/home/user,则

输入sestatus -b | grep ftp 查看状况
root执行setsebool ftp_home_dir 1 使ftp能切换目录

root重启ftp服务 service vsftpd restart


虚拟用户配置法
#创建宿主用户
useradd -s /sbin/nologin oracle
chmod 755 -R /home/oracle
#创建虚拟用户
touch /etc/vsftpd/ftpuser.txt
文件内容如下
user1
123
user2
456
添加用户和密码(一行用户和一行密码这种格式)


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

vi /etc/pam.d/vsftpd
清空里面的内容,然后添加
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/ftpuser

修改配置文件
vi /etc/vsftpd/vsftpd.conf
local_enable=YES  #如果不设置为YES,则会报500 OOPS: vsftpd: both local and anonymous access disabled!

write_enable=YES

anon_upload_enable=YES #虚拟用户可以上传文件
guest_enable=YES  #启用虚拟用户功能
guest_username=oracle #指定虚拟用户的宿主用户oracle
pam_service_name=vsftpd #使用/etc/pam.d/vsftpd这个配置文件

root重启ftp服务 service vsftpd restart

注意:默认情况下用匿名用户登陆FTP服务器后会进入/var/ftp目录,而本地用户登陆服务器后进入/home下的用户主目录中。我们可以在vsftpd.conf文件中加入local_root=/web,这样在使用本地用户登陆FTP服务器后自动进入/web目录中。如果发现还无法访问FTP服务,可以看看防火墙的配置。

你可能感兴趣的:(Linux/Unix)