------------------转载:亲身实践,确实好用(http://www.cnblogs.com/jack-Star/p/4089547.html)html
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 今后名称能够看出来,编制者的初衷是代码的安全。前端
安全性是编写VSFTP的初衷,除了这与生俱来的安全特性之外,高速与高稳定性也是VSFTP的两个重要特色。mysql
在速度方面,使用ASCII代码的模式下载数据时,VSFTP的速度是Wu-FTP的两倍,若是Linux主机使用2.4.*的内核,在千兆以太网上的下载速度可达86MB/S。linux
在稳定方面,VSFTP就更加的出色,VSFTP在单机(非集群)上支持4000个以上的并发用户同时链接,根据Red Hat的Ftp服务器(ftp.redhat.com)的数据,VSFTP服务器能够支持15000个并发用户。sql
安装该软件须要使用最高用户(root)进行安装,不然不能进行。vim
首先用命令检查VSFTP是否已经安装。c#
chkconfig --list | grep vsftpd缓存
显示结果以下,没有任何反应,说明没有安装VSFTP。安全
接着使用yum命令直接安装服务器
yum install –y vsftpd
上图中表示正在下载,须要耐心等一下,若是网络不顺畅通,也可能须要下载失败,不过不要担忧,只要在从新提交一次命令就行。
今天在安装ftp是出现了新的错误:
在运行yum install –y vsftpd时,出现了一下错误
Error: Cannot find a valid baseurl for repo: base
这样的话,访问外网ip是不通的
ping www.baidu.com
unknow host
解决办法:
vi /etc/resolv.conf
在此文件的最后加上nameserver 8.8.8.8
再次验证ping www.baidu.com 是能够ping 通的
而后为它建立日志文件:
touch /var/log/vsftpd.log
这样简单的两个命令就完成了vsftp的安装,可是若是你如今想这样ftp://your_ip来访问的话,那还不行,还须要配置权限!
再次使用"chkconfig --list | grep vsfpd"来查看vsftpd服务启动项状况;
服务所有都是关闭(off)的,注意这里的关闭(off)表示的是服务器启动的时候是否会自启动服务,咱们使用以下命令来配置其自启动:
chkconfig vsftpd on
或者
chkconfig --level 2345 vsftpd on
查看与管理ftp服务:
启动ftp服务:service vsftpd start
查看ftp服务状态:service vsftpd status
重启ftp服务:service vsftpd restart
关闭ftp服务:service vsftpd stop
编辑/etc/vsftpd/vsftpd.conf文件,配置vsftp服务:
vim /etc/vsftpd/vsftpd.conf
先按键盘上的"a"就能够进行编辑了,按照下面进行操做。
anonymous_enable=YES --> anonymous_enable=NO //不容许匿名用户访问,默认是容许
xferlog_file=/var/log/vsftpd.log #设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必需要手动touch出来
#idle_session_timeout=600 --> idle_session_timeout=600 //会话超时,客户端链接到ftp但未操做,默认被注释掉,可根据我的状况修改
#async_abor_enable=YES --> async_abor_enable=YES //支持异步传输功能,默认是注释掉的,去掉注释
#ascii_upload_enable=YES --> ascii_upload_enable=YES //支持ASCII模式的下载功能,默认是注释掉的,去掉注释
#ascii_download_enable=YES --> ascii_download_enable=YES //支持ASCII模式的上传功能,默认是注释掉的,去掉注释
#ftpd_banner=Welcome to blah FTP service //FTP的登陆欢迎语,自己是被注释掉的,去不去都行
#chroot_local_user=YES --> chroot_local_user=YES
//禁止本地用户登出本身的FTP主目录,自己被注释掉,去掉注释
下面几个都是已经去掉的,只是写出来,明白其用意。
local_enable=YES //容许本地用户访问,默认就是YES,不用改
write_enable=YES //容许写入,默认是YES,不用改
local_umask=022 //上传后文件的权限掩码,不用改
dirmessage_enable=YES //开启目录标语,默认是YES,开不开无所谓,我是默认就行
xferlog_enable=YES //开启日志,默认是YES,不用改
connect_from_port_20=YES //设定链接端口20
xferlog_std_format=YES //设定vsftpd的服务日志保存路径,不用改
pam_service_name=vsftpd //设定pam服务下vsftpdd的验证配置文件名,不用改
userlist_enable=YES //拒绝登陆用户名单,不用改
TCP_wrappers=YES //限制主机对VSFTP服务器的访问,不用改(经过/etc/hosts.deny和/etc/hosts.allow这两个文件来配置)
按照上面修改完以后,按键盘"Esc"退出编辑,再按":",并在后面输入"wq",进行保存并退出。
按照以上步骤还不能运行,用下面命令能够查看一下防火墙容许的端口号,咱们知道ftp的端口号是"20、21",从结果中能够看出,并无。
service iptables status
这时须要对"/etc/sysconfig/iptables"进行配置:
vim /etc/sysconfig/iptables
在用上面的命名对"iptables"文件进行添加下面的内容。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux史上最杰出的新安全子系统。SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制 (MAC)系统。对于目前可用的 Linux 安全模块来讲,SELinux 是功能最全面,并且测试最充分的,它是在 20 年的 MAC 研究基础上创建的。SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念SELinux提供了比传统的UNIX权限更好的访问控制。
正式如此,因此此时还不能访问FTP服务器。用下面命令查询:
getsebool -a | grep ftp
能够经过下面命令把上图中红色圈住的两个的值设置为"on"。
setsebool -P ftp_home_dir 1
setsebool -P allow_ftpd_full_access 1
最后就是把"vsftpd"和"iptables"两个服务从新启动一下。
service vsftpd restart
若是出现下图,说明刚才没有把vsftpd服务启动起来。
service vsftpd start
最后把防火墙从新启动一下。
service iptables restart
到此为止FTP服务器就搭建完毕了,下面能够经过"FlashFXP.exe"软件进行访问了。
chkconfig命令主要用来更新(启动或中止)和查询系统服务的运行级信息。谨记chkconfig不是当即自动禁止或激活一个服务,它只是简单的改变了符号链接。
使用语法:
chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]
chkconfig在没有参数运行时,显示用法。若是加上服务名,那么就检查这个服务是否在当前运行级启动。若是是,返回true,不然返回false。若是在服务名后面指定了on,off或者reset,那么chkconfig会改变指定服务的启动信息。on和off分别指服务被启动和中止,reset指重置服务的启动信息,不管有问题的初始化脚本指定了什么。on和off开关,系统默认只对运行级3,4,5有效,可是reset能够对全部运行级有效。
参数用法:
--add 增长所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增长相关数据。
--del 删除所指定的系统服务,再也不由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
--level<等级代号> 指定读系统服务要在哪个执行等级中开启或关毕。
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络链接的多用户命令行模式
等级3表示:有网络链接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:从新启动
须要说明的是,level选项能够指定要查看的运行级而不必定是当前运行级。对于每一个运行级,只能有一个启动脚本或者中止脚本。当切换运行级时,init不会从新启动已经启动的服务,也不会再次去中止已经中止的服务。
chkconfig --list [name]:显示全部运行级系统服务的运行状态信息(on或off)。若是指定了name,那么只显示指定的服务在不一样运行级的状态。
chkconfig --add name:增长一项新的服务。chkconfig确保每一个运行级有一项启动(S)或者杀死(K)入口。若有缺乏,则会从缺省的init脚本自动创建。
chkconfig --del name:删除服务,并把相关符号链接从/etc/rc[0-6].d删除。
chkconfig [--level levels] name:设置某一服务在指定的运行级是被启动,中止仍是重置。
运行级文件:
每一个被chkconfig管理的服务须要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和中止的优先级。若是某服务缺省不在任何运行级启动,那么使用 - 代替运行级。第二行对服务进行描述,能够用\ 跨行注释。
例如,random.init包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \
# higher quality random number generation.
使用范例:
chkconfig --list #列出全部的系统服务
chkconfig --add httpd #增长httpd服务
chkconfig --del httpd #删除httpd服务
chkconfig --level httpd 2345 on #设置httpd在运行级别为二、三、四、5的状况下都是on(开启)的状态
chkconfig --list #列出系统全部的服务启动状况
chkconfig --list mysqld #列出mysqld服务设置状况
chkconfig --level 35 mysqld on #设定mysqld在等级3和5为开机运行服务,--level 35表示操做只在等级3和5执行,on表示启动,off表示关闭
chkconfig mysqld on #设定mysqld在各等级为on,"各等级"包括二、三、四、5等级
如何增长一个服务:
1.服务脚本必须存放在/etc/ini.d/目录下;
2.chkconfig --add servicename
在chkconfig工具服务列表中增长此服务,此时服务会被在/etc/rc.d/rcN.d中赋予K/S入口了;
3.chkconfig --level 35 mysqld on
修改服务的默认启动等级。
yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,可以从指定的服务器自动下载RPM包而且安装,能够自动处理依赖性关系,而且一次安装全部依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至所有软件包的命令,并且命令简洁而又好记。
yum的命令形式通常是以下:yum [options] [command] [package ...]
其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择所有为"yes"),-q(不显示安装的过程)等等。[command]为所要进行的操做,[package ...]是操做的对象。
归纳了部分经常使用的命令包括:
自动搜索最快镜像插件: yum install yum-fastestmirror
安装yum图形窗口插件: yum install yumex
查看可能批量安装的列表: yum grouplist
1 安装
yum install 所有安装
yum install package1 安装指定的安装包package1
yum groupinsall group1 安装程序组group1
2 更新和升级
yum update 所有更新
yum update package1 更新指定程序包package1
yum check-update 检查可更新的程序
yum upgrade package1 升级指定程序包package1
yum groupupdate group1 升级程序组group1
3 查找和显示
yum info package1 显示安装包信息package1
yum list 显示全部已经安装和能够安装的程序包
yum list package1 显示指定程序包安装状况package1
yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包
4 删除程序
yum remove package1 删除程序包package1
yum groupremove group1 删除程序组group1
yum deplist package1 查看程序package1依赖状况
5 清除缓存
yum clean packages 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers
好比,要安装游戏程序组,首先进行查找:
#:yum grouplist
能够发现,可安装的游戏程序包名字是"Games and Entertainment",这样就能够进行安装:
#:yum groupinstall "Games and Entertainment"
所 有的游戏程序包就自动安装了。在这里Games and Entertainment的名字必须用双引号选定,由于linux下面遇到空格会认为文件名结束了,所以必须告诉系统安装的程序包的名字是"Games and Entertainment"而不是"Games"。
此外,还能够修改配置文件/etc/yum.conf选择安装源。可见yum进行配置程序有多方便了吧。更多详细的选项和命令,固然只要在命令提示行下面:man yum
getsebool与setsebool工具
说明:SELinux规范了许多boolean数值清单档案,提供开启或关闭功能存取项目,而这些值都存放在/selinux/booleans/目录内相关档案,这些档案里的值只有两种:1(启用)或 0(关闭)
1)getsebool
说明:列出全部selinux bool数值清单表与内容
使用方式:getsebool [ -a ]
例如如下范例:
#getsebool ftpd_disable_trans
ftpd_disable_trans –> off
#getsebool -a
NetworkManager_disable_trans –> off
allow_cvs_read_shadow –> off
allow_daemons_dump_core –> on
allow_daemons_use_tty –> off
allow_execheap –> off
allow_execmem –> on
allow_execmod –> off
………
2)setsebool
说明:设定selinux bool数值清单表与内容
使用方式:setsebool [ -P ] boolean value | bool1=val1 bool2=val2 bool3=val3……
参数配置: -P表示设定该项目永久套用
使用范例:
setsebool ftpd_disable_trans=on ( on 或者 1 )
setsebool -P ftpd_disable_trans=off ( off 或者 0 )
vi编辑器是全部Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。因为对Unix及Linux系统的任何版本,vi编辑器是彻底相同的,所以您能够在其余任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。
一、vi的基本概念
基本上vi能够分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分以下:
1) 命令行模式command mode)
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
2) 插入模式(Insert mode)
只有在Insert mode下,才能够作文字输入,按「ESC」键可回到命令行模式。
3) 底行模式(last line mode)
将文件保存或退出vi,也能够设置编辑环境,如寻找字符串、列出行号……等。
不过通常咱们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。
二、vi的基本操做
a) 进入vi
在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面:
$ vi myfile
不过有一点要特别注意,就是您进入vi以后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才可以输入文字。初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把本身气个半死,因此进入vi后,先不要乱动,转换到「插入模式(Insert mode)」再说吧!
b) 切换至插入模式(Insert mode)编辑文件
在「命令行模式(command mode)」下按一下字母「i」就能够进入「插入模式(Insert mode)」,这时候你就能够开始输入文字了。
c) Insert 的切换
您目前处于「插入模式(Insert mode)」,您就只能一直输入文字,若是您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下「ESC」键转到「命令行模式(command mode)」再删除文字。
d) 退出vi及保存文件
在「命令行模式(command mode)」下,按一下「:」冒号键进入「Last line mode」,例如:
: w filename (输入 「w filename」将文章以指定的文件名filename保存)
: wq (输入「wq」,存盘并退出vi)
: q! (输入q!, 不存盘强制退出vi)
三、命令行模式(command mode)功能键
1)插入模式
按「i」切换进入插入模式「insert mode」,按"i"进入插入模式后是从光标当前位置开始输入文件;
按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
2)从插入模式切换为命令行模式
按「ESC」键。
3)移动光标
vi能够直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。
按「ctrl」+「b」:屏幕往"后"移动一页。
按「ctrl」+「f」:屏幕往"前"移动一页。
按「ctrl」+「u」:屏幕往"后"移动半页。
按「ctrl」+「d」:屏幕往"前"移动半页。
按数字「0」:移到文章的开头。
按「G」:移动到文章的最后。
按「$」:移动到光标所在行的"行尾"。
按「^」:移动到光标所在行的"行首"
按「w」:光标跳到下个字的开头
按「e」:光标跳到下个字的字尾
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如:5l,56l。
4)删除文字
「x」:每按一次,删除光标所在位置的"后面"一个字符。
「#x」:例如,「6x」表示删除光标所在位置的"后面"6个字符。
「X」:大写的X,每按一次,删除光标所在位置的"前面"一个字符。
「#X」:例如,「20X」表示删除光标所在位置的"前面"20个字符。
「dd」:删除光标所在行。
「#dd」:从光标所在行开始删除#行
5)复制
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
「yy」:复制光标所在行到缓冲区。
「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:全部与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。
6)替换
「r」:替换光标所在处的字符。
「R」:替换光标所到之处的字符,直到按下「ESC」键为止。
7)回复上一次操做
「u」:若是您误执行一个命令,能够立刻按下「u」,回到上一个操做。按屡次"u"能够执行屡次回复。
8)更改
「cw」:更改光标所在处的字到字尾处
「c#w」:例如,「c3w」表示更改3个字
9)跳至指定的行
「ctrl」+「g」列出光标所在行的行号。
「#G」:例如,「15G」,表示移动光标至文章的第15行行首。
四、Last line mode下命令简介
在使用「last line mode」以前,请记住先按「ESC」键肯定您已经处于「command mode」下后,再按「:」冒号便可进入「last line mode」。
A) 列出行号
「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。
B) 跳到文件中的某一行
「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
C) 查找字符
「/关键字」:先按「/」键,再输入您想寻找的字符,若是第一次找的关键字不是您想要的,能够一直按「n」会日后寻找到您要的关键字为止。
「?关键字」:先按「?」键,再输入您想寻找的字符,若是第一次找的关键字不是您想要的,能够一直按「n」会往前寻找到您要的关键字为止。
D) 保存文件
「w」:在冒号输入字母「w」就能够将文件保存起来。
E) 离开vi
「q」:按「q」就是退出,若是没法离开vi,能够在「q」后跟一个「!」强制离开vi。
「qw」:通常建议离开时,搭配「w」一块儿使用,这样在退出的时候还能够保存文件。
五、vi命令列表
一、下表列出命令模式下的一些键的功能:
h 左移光标一个字符
l 右移光标一个字符
k 光标上移一行
j 光标下移一行
^ 光标移动至行首
0 数字"0",光标移至文章的开头
G 光标移至文章的最后
$ 光标移动至行尾
Ctrl+f 向前翻屏
Ctrl+b 向后翻屏
Ctrl+d 向前翻半屏
Ctrl+u 向后翻半屏
i 在光标位置前插入字符
a 在光标所在位置的后一个字符开始增长
o 插入新的一行,从行首开始输入
ESC 从输入状态退至命令状态
x 删除光标后面的字符
#x 删除光标后的#个字符
X (大写X),删除光标前面的字符
#X 删除光标前面的#个字符
dd 删除光标所在的行
#dd 删除从光标所在行数的#行
yw 复制光标所在位置的一个字
#yw 复制光标所在位置的#个字
yy 复制光标所在位置的一行
#yy 复制从光标所在行数的#行
p 粘贴
u 取消操做
cw 更改光标所在位置的一个字
#cw 更改光标所在位置的#个字
二、下表列出行命令模式下的一些指令
w filename 储存正在编辑的文件为filename
wq filename 储存正在编辑的文件为filename,并退出vi
q! 放弃全部修改,退出vi
set nu 显示行号
/或? 查找,在/后输入要查找的内容
n 与/或?一块儿使用,若是查找的内容不是想要找的关键字,按n或向后(与/联用)或向前(与?联用)继续查找,直到找到为止。
对于第一次用vi,有几点注意要提醒一下:
一、用vi打开文件后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才可以输入文字。切换方法:在「命令行模式(command mode)」下按一下字母「i」就能够进入「插入模式(Insert mode)」,这时候你就能够开始输入文字了。
二、编辑好后,需从插入模式切换为命令行模式才能对文件进行保存,切换方法:按「ESC」键。
三、保存并退出文件:在命令模式下输入:wq便可!(别忘了wq前面的:)
linux中新建文件命令touch用法详解:
linux中的touch命令通常用来修改文件的时间,或者新建一个不存在的文件。
语法以下:
touch [-acm][-r ref_file(参照文件)|-t time(时间值)] file(文件名)
例子:
touch file1.txt 更新file1.txt的存取和修改时间
touch -c file1.txt 若是file1.txt不存在,不建立文件
touch -r ref_file file1.txt 更新file1.txt的时间戳和ref+file相同
touch -t 0911252234.40 file1.txt 设定文件的时间为09年11月25日22点34分40秒
个参数说明以下:
-a 修改文件 file 的存取时间.
-c 不建立文件 file.
-m 修改文件 file 的修改时间
-r ref_file 将参照文件 ref_file 相应的时间戳记的数值做为指定文件 file 时间戳记的新值.
-t time 使用指定的时间值 time 做为指定文件 file 相应时间戳记的新值.此处的 time 规定为以下形式的十进制数∶[[CC]YY]MMDDhhmm[.SS]
这里,CC为年数中的前两位,即"世纪数";YY为年数的后两位,即某世纪中的年数.若是不给出CC的值,则touch 将把年数CCYY限定在1969--2068以内.MM为月数,DD为天将把年数CCYY限定在1969--2068以内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样能够处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时 间.因为系统的限制,早于1970年1月1日的时间是错误的。