当前位置: 首页 > news >正文

vsftpd-Note

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

FTP在实践中使用的比较多。今天实践一下VSFTPD的部署。

#1 centos7 Vsftpd ###1.1 安装vsftpd yum install -y vsftpd ###1.2 配置ftp vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO  
chroot_local_user=YES

#最后添加如下行解决无法登陆的问题
allow_writeable_chroot=YES

###1.3 启动/重新启动ftp systemctl start vsftpd.service (原service start vsftpd)
systemctl restart vsftpd.service (原service restart vsftpd)

###1.4 设置开机启动ftp systemctl enable vsftpd.service (原chkconfig vsftpd on)

###1.5 建立ftp账户 useradd -d /www/ftp -s /sbin/nologin ftpadmin /www/ftp 为ftp目录

###1.6 修改密码 passwd ftpadmin

###1.7 设置账户权限 chown -R ftpadmin.ftpadmin /www/ftp

如果系统启用了防火墙和SELinux,那么还要做以下配置。 ####1.8 防火墙添加FTP服务: firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload ####1.9 设置SELinux: getsebool -a | grep ftp
setsebool -P ftpd_full_access on

###1.10 使用filezilla来访问下FTP,测试FTP CURD操作。 ftpadmin/pasword

#2 ubuntu14.04 vsftpd ###2.1 彻底卸载vsftpd sudo apt-get --purge remove vsftpd

###2.2 安装vsftpd sudo apt-get install vsftpd

###2.3 备份配置文件 sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bk

###2.4 检查是否已启动 netstat -antl

###2.5 配置 vi /etc/vsftpd.conf

anonymous_enable=NO
local_enable=YES 
write_enable=YES

#最后添加如下行解决无法登陆的问题
allow_writeable_chroot=YES
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users

###2.6 建立ftp账户 sudo useradd -d /ftp -s /bin/bash ftpuser /ftp 为ftp目录

###2.7 修改密码 passwd ftpuser

###2.8 设置账户权限 chown -R ftpuser.ftpuser /ftp

###2.9 重启服务 sudo service vsftpd restart

###2.10 使用filezilla来访问下FTP,测试FTP CURD操作。 ftpuser/pasword

#3 好的实践 ###3.1 ftp服务器: (1)、匿名用户可登录浏览,但不能下载
(2)、设置4个不同等级的用户使用此ftp服务器(虚拟用户),分别如下
用户名:ftpmain 路径/home/vsftpd 管理用户,可对ftp服务器的所有文件进行任何操作
用户名:down 路径/home/vsftpd/down 下载用户,只可下载此目录下的文件
用户名:upload 路径/home/vstfpd/upload 上传用户,在此目录下可上传下载删除等操作
用户名:test 路径/home/vsftpd/test 测试目录

###3.2 vsftpd日志解决方案 表明FTP服务器记录上传下载的情况
xferlog_enable=YES 表明将记录的上传下载情况写在xferlog_file所指定的文件中,即xferlog_file选项指定的文件中 xferlog_std_format=YES
xferlog_file=/var/log/xferlog

###3.3 启用双份日志。在用xferlog文件记录服务器上传下载情况的同时,

vsftpd_log_file所指定的文件,即/var/log/vsftpd.log也将用来记录服务器的传输情况

dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log

###3.4 修改欢迎信息

sudo vi /etc/vsftpd.conf 末尾添加行
dirmessage_enable=YES
然后到ftp根目录设置.message内容
cd /ftp
sudo vi .message
输入:Welcome to ftp server ,enjoy it !
sudo service vsftpd restart

###3.5 超时设置 idle_session_timeout=600 #空闲连接超时
data_connection_timeout=120 #数据传输超时
ACCEPT_TIMEOUT=60 #PAVS请求超时
connect_timeout=60 #PROT模式连接超时

###3.6 允许匿名上传

write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES

###3.7 一些命令 sudo cat /etc/hosts查看本地host
ftp localhost ftp登陆本地
anonymous_enable=YES 匿名访问
finger ftp 查看ftp的根目录可以用这个命令
more /etc/passwd | grep ftp 查看ftp默认的根目录
gedit /etc/passwd ,把其中的ftp项修改成自己需要的. vi打开文件,/为查找命令 修改ftp默认的根目录
pgrep vsftpd 或者列出所有进程 ps -d 查看vsftpd是否启动
sudo chown root:root ftp , ftp为目录 赋予那个组

###3.8 权限模式 7 5 5
用户 组 任何人
r+w+x r+x r+x
4+2+1 4+0+1 4+0+1 = 755

权限模式是由用户,文件组及其他所有人各组数值分别相加得出的。从上面的图表中应该能看出个大概。

Read 4 - 允许读文件  
Write 2 - 允许写/修改文件  
eXecute1 - 读/写/删除/修改/目录  

权限模式实例
模式 字符表示 说明
0477 -r--rwxrwx 所有者仅可读(4),其他及组可读写执行(7)
0677 -rw-rwxrwx 所有者仅可读写(6),其他及组可读写执行(7)
0444 -r--r--r-- 所有均仅可读(4)
0666 -rw-rw-rw- 所有均仅可读写(6)
0400 -r-------- 所有者仅可读(4),组及其他无任何权限(0)
0600 -rw------- 所有者仅可读写(6),组及其他无任何权限(0)
0470 -r--rwx--- 所有者仅可读,组可读写执行,其他则无任何权限
0407 -r-----rwx 所有者仅可读,其他可读写执行,组则无任何权限
0670 -rw-rwx--- 所有者仅可读写,组可读写执行,其他则无任何权限
0607 -rw----rwx 所有者仅可读写,其他可读写执行,组则无任何权限

###3.8 其它

安装完后不用做任何配置既可用匿名方式进行访问,默认的ftp文件夹为/srv/ftp
ftp://192.168.1.111/ ftp 在浏览器 访问
开放重命名,删除文件等权限,不开的话没法续传。
anon_other_write_enable=YES

###3.9 cmds_allowed

cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,RNFR,RNTO,RETR,DELE,SIZE,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
cmds_allowed=ABOR,ACCT,APPE,CWD,CDUP,DELE,HELP,LIST,MODE,MDTM,MKD,NOOP,NLST,PASS,PASV,PORT,PWD,QUIT,REIN,RETR,RMD,RNFR,RNTO,SITE,SIZE,STOR,STAT,STOU,STRU,SYST,TYPE,USER
cmds_allowed=FEAT,REST,ABOR,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,RNFR,RNTO,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST,DELE,RETR

# ABOR - abort a file transfer 取消文件传输
# CWD - change working directory 更改目录
# DELE - delete a remote file 删除文件
# LIST - list remote files 列目录
# MDTM - return the modification time of a file 返回文件的更新时间
# MKD - make a remote directory 新建文件夹
# NLST - name list of remote directory
# PASS - send password
# PASV - enter passive mode
# PORT - open a data port 打开一个传输端口
# PWD - print working directory 显示当前工作目录
# QUIT - terminate the connection 退出
# RETR - retrieve a remote file 下载文件
# RMD - remove a remote directory
# RNFR - rename from
# RNTO - rename to
# SITE - site-specific commands
# SIZE - return the size of a file 返回文件大小
# STOR - store a file on the remote host 上传文件
# TYPE - set transfer type
# USER - send username

# less common commands:

# ACCT* - send account information
# APPE - append to a remote file
# CDUP - CWD to the parent of the current directory
# HELP - return help on using the server
# MODE - set transfer mode
# NOOP - do nothing
# REIN* - reinitialize the connection
# STAT - return server status
# STOU - store a file uniquely
# STRU - set file transfer structure
# SYST - return system type  

#4 引用及感谢 1.http://wiki.ubuntu.org.cn/Vsftpd
2.http://forum.ubuntu.org.cn/viewtopic.php?t=464142
3.http://pcvc.net/blog/2015/08/09/centos-7-installation-configuration-do-vsftpd-ftp-service/
4.http://www.baidu.com/link?url=Vkk0J001A2kX4yDj2X4nDkFc7_TndIoCPZzv5BvpiGv72oHnI53E9mQ7zBZbXTRNz0oMCQi1_gucQpmmxI3u0a&wd=&eqid=d5017af9000006a70000000256418716

2016-07-10 21:03:25 星期日

2017-02-14 Centos 6.5 vsftpd yum install -y vsftpd
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bk
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
chroot_local_user=YES

userlist_deny=NO 文件尾添加此行
useradd -d /home/ftp -s /sbin/nologin ftpadmin
passwd ftpadmin
chown -R ftpadmin.ftpadmin /home/ftp
echo ftpadmin >> /etc/vsftpd/user_list
service vsftpd start

find / -name vsftpd
rpm -qa | grep vsftpd

转载于:https://my.oschina.net/kenzheng/blog/709307

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 微软RPC官方教程
  • 如何配置和使用Tomcat访问日志
  • 排列木桩
  • mysql 主从同步event问题
  • Angularjs之国际化
  • php面试相关
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • java经典面试题!
  • Bootstrap模态框的简单示例
  • 解决Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly
  • Linux下使用mke2fsk格式化虚拟磁盘分区的方法
  • ios KVOKVC
  • 开源入侵检测系统OSSEC搭建之二:客户端安装
  • Cisco设备型号编码详解
  • Android 通知栏自定义视图并且设置事件的开发
  • hexo+github搭建个人博客
  • 【附node操作实例】redis简明入门系列—字符串类型
  • co.js - 让异步代码同步化
  • Effective Java 笔记(一)
  • iOS 颜色设置看我就够了
  • Java 内存分配及垃圾回收机制初探
  • SQL 难点解决:记录的引用
  • vue-loader 源码解析系列之 selector
  • 大整数乘法-表格法
  • 对象管理器(defineProperty)学习笔记
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 软件开发学习的5大技巧,你知道吗?
  • 使用 @font-face
  • 使用 QuickBI 搭建酷炫可视化分析
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 用简单代码看卷积组块发展
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​Redis 实现计数器和限速器的
  • #Lua:Lua调用C++生成的DLL库
  • #NOIP 2014# day.2 T2 寻找道路
  • #pragam once 和 #ifndef 预编译头
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (C语言)fread与fwrite详解
  • (LeetCode) T14. Longest Common Prefix
  • (zt)最盛行的警世狂言(爆笑)
  • (搬运以学习)flask 上下文的实现
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (四)鸿鹄云架构一服务注册中心
  • (转)scrum常见工具列表
  • (转)程序员疫苗:代码注入
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET Framework杂记
  • .NET MVC之AOP
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)