您的位置:首页 > 运维架构 > Linux

linux下使用vsftpd包按需搭建ftp,留个记录供参考

2015-10-14 11:24 513 查看
内部需求:搭建ftp服务器,存储部门资料,共享给外部门

要求:部门内可看到所有资料,外部门只能看到部分资料

思路:使用虚拟账号配置方式,设置ftp可访问的目录权限,外部门和本部门分别用不同的虚拟账号,分别配置

系统:redhat 6.3

具体步骤如下

1、下载vsftpd报,安装,我是下载的rpm包,这种包的好处是可以直接安装,把所有的包含关系都打好包,不需要再找关联包

2、新建系统账号,设置账号根目录,只允许ftp方式登录

adduser -d /home/share vftpuser

usermod -s /sbin/nologin

3、在、etc/vsftpd 目录(当然你也可以选择其他目录,把文件都放在一起便于管理)

新建vftpusers.txt 文件,一行用户名、一行密码 记录你想设置的虚拟账号,例如:

test1

123456

test2

2345667

以上建立了test1 和test2两个账号,密码分别是123456 和234567

还需将以上数据导入到口令库

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

为虚拟账号建立pam 配置文件

修改/etc/pam.d/vsftpd文件
将默认配置全部用“#”注释在最后添加
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

4、修改ftp配置文件 vsftpd.conf

vi进去后在配置文件后面添加如下   

anonymous_enable=NO        //禁止匿名登录

local_enable=YES          //允许本地登录,是为后面虚拟账号登陆准备,因为虚拟账号其实是用了本地系统账号 vftpuser进行登陆

local_root=/home/ftp       //设置ftp登陆的根目录,限制目录权限  

guest_enable=YES         //允许虚拟账号登陆 

guest_username=vftpuser    //虚拟账号使用的系统账号

pam_service_name=vsftpd

user_config_dir=/etc/vsftpd/users_config //设置虚拟账号个性化配置的配置目录,需自己创建该目录

5、为虚拟账号创建单独配置

进入/etc/vsftpd/users_config目录,创建test1 配置文件

vim test1

添加一行,修改test1的根目录

local_root=/home/ftp/test1

保存修改

启动ftp服务后,发现test1根目录是test1,test2的根目录是ftp

读取配置的顺序是先读取vsftpd.conf,然后再配置配置目录的内容。

出现过的问题:

ftp登陆错误:显示500,无法改变目录

原因是selinux设置为enforcing,把selinux设置为permissive 模式即可

setenforce 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: