linux下使用vsftpd包按需搭建ftp,留个记录供参考
2015-10-14 11:24
573 查看
内部需求:搭建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
要求:部门内可看到所有资料,外部门只能看到部分资料
思路:使用虚拟账号配置方式,设置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
相关文章推荐
- 在Centos 5.x或6.x上安装RHEL EPEL Repo
- Linux下的编码和字符集的资料
- Linux入门(一):50个最常用的指令
- Linux如何关闭防火墙
- 20条Linux命令面试问答,Linux命令
- Linux sort 命令的用法
- Linux中的likely()和unlikely()
- Linux学习记录(16)netfilter以及iptables概念及操作
- linux的那些坑爹事
- 学习日志---linux打卡9
- linux 解决非root用户用SSH不能无密码登陆本机问题。
- 在SD卡上安装树莓派的操作系统 - Linux版
- linux下杀死进程(kill)的N种方法
- linux 线程学习之条件变量
- [国嵌笔记][011][Linux密码破解]
- Centos下如何截图
- CentOS用host、dig、nslookup查询DNS命令
- VMware中CentOS设置静态IP
- I.MX6 Linux U-boot 环境变量解析
- centos 64位系统安装