Ubuntu下vsftpd - 虚拟账户配置
首先做个表态, 本人并不是linux的大师, 仅限于平时有空在自己虚拟机上尝试玩几下。所以文章里有什么说的不对或者不专业的地方忘各人谅解。
最近因为某个创业项目需要, 整个服务器架构都需要自己去搭建,今天在aliyun服务器上,自己尝试搭建了FTP。 在Ubuntu OS 下安装了vsftpd ,并配置了虚拟账户登录。
大概的步骤是这样的:
vsftpd 安装 -> 创建虚拟用户数据库 -> 配置PAM文件->为虚拟用户创建本地系统用户->修改master vsftpd配置文件 -> 修改虚拟用户vsftpd 配置文件 -> 重启vsftpd
完美, 没有瑕疵。 关于如何安装vsftpd 在这边文章里不做描述, 大家不懂的地方可以问问度娘。 这里详细介绍下如何创建FTP 虚拟用户。
创建虚拟用户数据库
创建一个文本文件,ie, usrlist.txt 。保存的地址可以自己决定, 我的是/etc/vsftpd/
格式如下:
user_id password
注意:奇数行为账户名,偶数行为密码。也就是1.3.5.等行为用户名,2.4.6行为密码;最后一行需要回车(否则建立数据库文件时无法识别最后一行,导致报奇数行错误)这里我用红色highlight就是因为自己曾经在这里摔过跟头..
生成数据库
如果你系统里没有安装db-util, 就需要自己手动安装,我看到网上其他地方很多人装的是db<version>-util, 但我在我的服务器上找不到这个包, 于是我直接装的是db-util。 这个工具其实就是把相应的文本文件转换成相应的数据库文件。
sudo apt-get install db-util
安装完后就可以把刚刚创建的txt文本文件转换为数据库,生成验证文件。
db_load -T -t hash -f usrlist.txt /etc/vsftpd/vsftpd_login.db chmod 600 /etc/vsftpd/vsftpd_login.db
配置PAM文件
pam 文件地址在 /etc/pam.d/vsftpd. 我在原有的基础上加入了投两行,直接显示给你们看:
auth sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login # Standard behaviour for ftpd(8).(以pam模块限制某些账号无法登录主机的设定) auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.# Standard pam includes@include common-account@include common-session@include common-authauth required pam_shells.so
我们上一步建立的数据库文件vsftpd_login在这里被应用。
我们建立的虚拟用户将采用PAM进行验证,这是通过/etc/vsftpd.conf文件中的 语句pam_service_name=vsftpd 来启用的,后面会介绍。
为虚拟用户创建本地系统用户
新建一个系统用户vsftpd,用户家目录为/home/vsftpd, 用户登录终端设为/bin/false(即使之不能登录系统)
sudo useradd vsftpd -d /home/vsftpd -s /bin/false sudo chown vsftpd:vsftpd /home/vsftpd
我们创建的虚拟用户就是通过借助这个本地用户来登录ftp。
修改master vsftpd配置文件
master配置文件在 /etc/vsftpd.conf ,我们接下来通过配置这个文件让虚拟用户生效,主要的命令有几条
listen=YES anonymous_enable=NO (如果要让访问的用户必须输入用户名和密码的话,这个时候这里就是设置成NO) dirmessage_enable=YES (登录后是否显示登录信息) xferlog_enable=YES (开启登录记录) xferlog_file=/var/log/vsftpd.log (上传、下载日志文件路径) xferlog_std_format=YES chroot_local_user=YES guest_enable=YES guest_username=vsftpd(这个就是我们上面设置的本地用户名) user_config_dir=/etc/vsftpd_user_conf (用户配置文件) pam_service_name=vsftpd (pam模块名称, 验证文件) local_enable=YES (允许本地用户登录) secure_chroot_dir=/var/run/vsftpd
修改虚拟用户vsftpd 配置文件
根据上面的user_config_dir路径我们创建虚拟用户自定义的权限设置,比如虚拟用户是ftpuser, 那么我们就在该路径下创建一个叫ftpuser的文件
直接显示我的配置文件内容:
local_root=/usr/www (这里是你要ftp登录的主目录) write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
重启vsftpd 服务
终于, 重启下服务, 然后测试,成功
>> ftp localhost Connected to localhost. 220 (vsFTPd 3.0.2) Name (localhost:root): <你的虚拟用户账号名称> 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>
Troubleshooting
- 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf
Ubuntu下vsftpd - 虚拟账户配置相关推荐
- Ubuntu 下apache2 虚拟主机配置
一.安装: ubuntu 及debian 下的apahce 有点特别,如果使用apt-get 方式安装( apt-get install apache2 ) 则安装目录默认在 /etc/apache2 ...
- Vsftpd 虚拟用户配置参考---终极版
Vsftpd 虚拟用户配置文档 一.主要文件列表 虚拟用户列表 account.txt 口令库文件 /etc/vsfptd/account.db PAM认证 /etc/pam.d/vs_1 主配置文件 ...
- Linux下Apache虚拟主机配置
说明: Apache版本:httpd-2.2.31 Apache安装目录:/usr/local/apache 目的: 配置Apache虚拟主机 具体操作: 1.修改Apache主配置文件 cp /us ...
- wireshark使用教程 linux,Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕...
Linux入门教程:ubuntu下安装wireshark(以及配置非root),这个强大的工具可以捕 Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关 ...
- 基于不同IP地址下的虚拟主机配置以及基于不同端口下的虚拟主机配置
基于不同IP地址下的虚拟主机配置 一.配置vhost.conf(主配置文件) (一).进入主配置文件目录:cd /etc/httpd/conf.d (二).配置主配置文件:vim vhost/conf ...
- firefox linux 中文字体,Ubuntu下的Firefox字体配置方案
有关gnome & gtk*的字体配置,在各人机器上总会有些不一.一种配置,适合我:可能并不一定适合别人.软件本身的说明往往是最有说服力,配置起来也最有效果的吧.这里也提供一个Ubuntu下的 ...
- linux apache部署php,Linux下apache虚拟主机配置多版本php同时运行 | 系统运维
学习本教程须掌握: 1.Linux下指定版本编译安装LAMP 2.Linux下Apache虚拟主机配置 3.CentOS 7.x编译安装Nginx1.10.3+MySQL5.7.16+PHP5.2 5 ...
- ubuntu下vsftpd配置详细篇
1. 本人配置的ftp服务器的设计要求如下: (1).匿名用户可登录浏览,但不能下载 (2).设置4个不同等级的用户使用此ftp服务器(虚拟用户),分别如下 用户名:nan306 路径/home/ ...
- vsftpd的虚拟账户配置
1). yum -y install vsftpd db4-utils 2). 建立系统账号 useradd virftp -s /sbin/nologin 3). 建立虚拟账户 ...
- win下ubuntu安装mysql_MySQL在Win10与Ubuntu下的安装与配置
近段时间把自己电脑(win).虚拟机(Ubuntu)以及阿里云(ubuntu)都重置了一遍,其中本机以及阿里云都有用到MySQL,不想之后找教程找的那么麻烦.所以就自己总结一遍,一次性把轮子造好. 环 ...
最新文章
- 把mysql安装到服务器端_MySQL服务器端安装
- java jtable应用源码_JTable的应用(一)
- URLConnection和HttpURLConnection类
- char与byte的差别
- 中运量71路线路图_上海新增公交线路835路 连接中运量71路与虹桥枢纽
- Android中Xml工具类的封装
- 模拟定位工具gps mock
- android自定义wifi列表,Android开发之Wifi基础教程
- IDEA 2017 破解方法(附图)
- STATA长面板数据分析
- 阿里云服务器安装Nginx
- 笔记本自带键盘与IDEA快捷键冲突
- Building 'xxx' Gradle project info
- i tell you
- c语言围棋原理,围棋中的数学原理
- 铲雪车(snow) UVA10203 Snow Clearing 题解 优化版
- lqr ilqr代码实例
- 51、基于51单片机的GPS定位系统(GSM短信)
- STM8L052C6 低功耗+LCD显示 经验分享
- python恶搞代码-Python里最搞怪的招式是啥 |初探生成器
热门文章
- 《卫报》评全球最具影响力博客50强 徐静蕾入选
- ie打开本地html页面慢,ie11 第一次浏览jquery+CSS3网页时候延时3秒
- 富文本 和 图片裁切
- roaringbitmap java,BitMap与RoaringBitmap、JavaEWAH
- idea gradle GC overhead limit exceeded
- error occurred during initialization of VM报错解决
- 举个栗子!Tableau 技巧(183):快速实现部分类别的排序
- python命令行参数是什么
- uniapp实现苹果支付流程
- 用 Opencv 和 Python 对汪星人做模糊检测