CentOS命令大全 包括:系统命令,各种服务器搭建等




CentOS命令大全 包括:系统命令,各种服务器搭建等

2022-07-20 21:06:33 网络知识 官方管理员
下面,就给大家介绍这些CentOS常用命令

一:使用CentOS常用命令查看cpu

more/proc/cpuinfo|grep"modelname"
grep"modelname"/proc/cpuinfo
[root@localhost/]#grep"CPU"/proc/cpuinfo
modelname:Intel(R)Pentium(R)DualCPUE2180@2.00GHz
modelname:Intel(R)Pentium(R)DualCPUE2180@2.00GHz
如果觉得需要看的更加舒服
grep"modelname"/proc/cpuinfo|cut-f2-d:

二:使用CentOS常用命令查看内存

grepMemTotal/proc/meminfogrepMemTotal/proc/meminfo|cut-f2-d:free-m|grep"Mem"|awk'{print$2}'

三:使用CentOS常用命令查看cpu是32位还是64位

查看CPU位数(32or64)
getconfLONG_BIT

四:使用CentOS常用命令查看当前linux的版本

more/etc/redhat-release
cat/etc/redhat-release

五:使用CentOS常用命令查看内核版本

uname-r
uname-a

六:使用CentOS常用命令查看当前时间

date上面已经介绍如何同步时间了

七:使用CentOS常用命令查看硬盘和分区

df-h
fdisk-l
也可以查看分区
du-sh
可以看到全部占用的空间
du/etc-sh
可以看到这个目录的大小

八:使用CentOS常用命令查看安装的软件包

查看系统安装的时候装的软件包
cat-n/root/install.log
more/root/install.log|wc-l
查看现在已经安装了那些软件包
rpm-qa
rpm-qa|wc-l
yumlistinstalled|wc-l
不过很奇怪,我通过rpm,和yum这两种方式查询的安装软件包,数量并不一样。没有找到原因。
九:使用CentOS常用命令查看键盘布局
cat/etc/sysconfig/keyboard
cat/etc/sysconfig/keyboard|grepKEYTABLE|cut-f2-d=
十:使用CentOS常用命令查看selinux情况
sestatus
sestatus|cut-f2-d:
cat/etc/sysconfig/selinux
十一:使用CentOS常用命令查看ip,mac地址
在ifcfg-eth0文件里你可以看到mac,网关等信息。ifconfigcat/etc/sysconfig/network-scripts/ifcfg-eth0|grepIPADDRcat/etc/sysconfig/network-scripts/ifcfg-eth0|grepIPADDR|cut-f2-d=ifconfigeth0|grep"inetaddr:"|awk'{print$2}'|cut-c6-ifconfig|grep'inetaddr:'|grep-v'127.0.0.1'|cut-d:-f2|awk'{print$1}'查看网关cat/etc/sysconfig/network查看dnscat/etc/resolv.conf十二:使用CentOS常用命令查看默认语言
echo$LANG$LANGUAGE
cat/etc/sysconfig/i18n
十二:使用CentOS常用命令查看所属时区和是否使用UTC时间
cat/etc/sysconfig/clock
十三:使用CentOS常用命令查看主机名
hostname
cat/etc/sysconfig/network
修改主机名就是修改这个文件,同时最好也把host文件也修改。

十四:使用CentOS常用命令查看开机运行时间
uptime
09:44:45up67days,23:32,...
看来刚才确实是网段的问题,我的机器还是67天前开机的。
#系统资源使用情况
vmstat1-Smprocs-----------memory-------------swap-------io------system-------cpu------rbswpdfreebuffcachesisobiboincsussyidwast0002331997780042511309600000233199778000010298561318600

十五:使用CentOS常用命令查看开机运行时间
uptime
09:44:45up67days,23:32,...
看来刚才确实是网段的问题,我的机器还是67天前开机的。
#系统资源使用情况
1.vmstat1-Sm
2.procs-----------memory-------------swap-------io------system-------cpu------
3.rbswpdfreebuffcachesisobiboincsussyidwast
4.0002331997780042511309600
5.000233199778000010298561318600
6.
对大家推荐很好使用的LinuxCentOS系统,像让大家对LinuxCentOS系统有所了解,然后对LinuxCentOS系统全面讲解介绍,希望对大家有用LinuxCentOS常用的命令.
wget$wget-r-np-ndhttp://example.com/packages/这条命令可以下载http://example.com网站上packages目录中的所有文件。LinuxCentOS其中,-np的作用是不遍历父目录,-nd表示不在本机重新创建目录结构。
$wget-r-np-nd--accept=isohttp://example.com/centos-5/i386/与上一条命令相似,LinuxCentOS但多加了一个--accept=iso选项,这指示wget仅下载i386目录中所有扩展名为iso的文件。你也可以指定多个扩展名,LinuxCentOS只需用逗号分隔即可。
$wget-ifilename.txt此命令常用于批量下载的情形,LinuxCentOS把所有需要下载文件的地址放到filename.txt中,然后wget就会自动为你下载所有文件了。LinuxCentOS$wget-chttp://example.com/really-big-file.iso这里所指定的-c选项的作用为断点续传。
$wget-m-k(-H)http://www.example.com/该命令可用来镜像一个网站,wget将对链接进行转换。LinuxCentOS如果网站中的图像是放在另外的站点,那么可以使用-H选项。


VI编辑命令命令模式
移动光标
[Ctrl]+[f]→屏幕『向下』移动一页,相当于[PageDown]按键
[Ctrl]+[b]→屏幕『向上』移动一页,相当于[PageUp]按键
n<space>→n表示『数字』。按下数字后再按空白鍵,光标会向右移动这一行的n个字元
0→数字『0』:移动到这一行的最前面字元处
$→移动到这一行的最后面字元处
G→移动到这个文件的最后一行
nG→n为数字。移动到这个文件的第n行(可配合:setnu)
gg→移动到这个文件的第一行,相当于1G
n<Enter>→n为数字。光标向下移动n行
LinuxCentOS查找与替换
n→『重复前一个查找的动作』
N→与n刚好相反,为『反向』进行前一个查找动作
:n1,n2s/word1/word2/g→n1与n2均为数字。在第n1与n2行之间查找word1字符串,并将该字符串替换为word2。
如:在1到9行之间查找eric4ever并替换为ERIC4EVER则:『:1,9s/eric4ever/ERIC4EVER/g』
:1,$s/word1/word2/g→从第一行到最后一行查找word1字符串,并将该字符串替换为word2
:1,$s/word1/word2/gc→从第一行到最后一行查找word1字符串,并将该字符窗替换为word2,替换前显示提示对话框是否确认替换


LinuxCentOS删除、复制与粘贴
x,X→在一行字当中,x为向后刪除一个字元(相当于[del]按键),
X为向前刪除一个字元(相当于[backspace]按键)
dd→刪除光标所在的那一整行
ndd→n为数字。刪除光标所在的向下n列
yy→复制光标所在的那一行
nyy→n为数字。复制光标所在的向下n列
p,P→p为将已复制的内容粘贴在光标下一行上,P则为粘贴在光标的上一行
u→还原前一个动作
[Ctrl]+r→重做上一个动作
.→小数点,意思是重复前一个动作
LinuxCentOS编辑模式i,I→插入:在目前的光标所在处插入输入的文字,已存在的文字会向后退;其中,i为『从目前光标所在处插入』,I为『在目前所在行的第一個非空白字元处开始插入』a,A→a为『从目前光标所在的下一个字元处开始插入』,A为『从光标所在行的最后一个字元处开始插入』
o,O→o为『在目前光标所在的下一行处插入新的一行』,O为『在目前光标所在处的上一行插入新的一行』
r,R→r为『取代光标所在的那一个字元』,R为『一直取代光标所在的文字,直到按下ESC为止』
Esc→退出编辑模式,回到一般模式中
LinuxCentOS末行指令模式
:w→将编辑的文件写入到硬盘上
:q→退出vi
:setnu→显示行号
:setnonu→取消显示行号
LinuxCentOSvim块操作
Ctrl+v进入视图模式
<Esc>退出视图模式
在Ctrl+v后:
<Dollar>+A在块的每行末尾添加
I插入
y块抽取
p块粘贴
c修改
Linuxcentos已被广泛应用但是也在不断的更新,这里介绍Linuxcentos安装设置使用,帮助大家安装更新Linuxcentos系统手动配置Linuxcentos的IP地址
今天在vmwareserver上装了个centos-4.7(免费的redhat,是小红帽的的克隆版本,跟小红帽的版本是对应的),其中ip安装时没设好,一般Linuxcentos的网卡IP地址是存放在文件中的,这个配置文件在/etc/sysconfig/network-scripts下,
名称分别为ifcfg-eth0,ifcfg-eth1....如果你有一块网卡,就只有ifcfg-eth0一个文件,如果你有两块或者两块以上的网卡,就会有ifcfg-eth1、ifcfg-eth2等文件的出现。


文件结构:
DEVICE=eth0//指出设备名称
ONBOOT=yes//是否启动应用
BOOTPROTO=static//启动类型静态(默认dhcp)
IPADDR=192.168.0.77//IP地址
NETMASK=255.255.255.0//子网掩码
GATEWAY=192.168.0.1//网关
步骤:
1、vi/etc/sysconfig/network-scripts/ifcfg-teh0(也可通过管理工具setup或netconfig命令设置)
2、重新启动网络服务servicenetworkrestart
要想和主机连接:还需配置xp主机,在vmware上设置为host-only模式,xp里修改vmnet1的IP地址为192.168.0.1,修改LinuxcentosIP为192.168.0.77
共享上网设置:xp里修改第一块虚拟网卡的网络属性为共享internet(属性->高级->钩选允许其他网络用户通过此计算机的Internet连接来连接)会自动把vmnet1改为192.168.0.1,Linuxcentos就能上网了
CentOSVsftpd配置经过长时间的发展,这里我发表一下个人理解,下面就这就来讲术CentOSVsftpd配置。调整CentOSVsftpd配置文件:
1.编辑CentOSVsftpd配置文件前先备份
[root@KcentOS5~]cp/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf.backup
2.编辑主CentOSVsftpd配置文件Vsftpd.conf
[root@KcentOS5~]vi/etc/vsftpd/vsftpd.conf
这里我将原CentOSVsftpd配置文件的修改完全记录,凡是修改的地方我都会保留注释原来的配置。其中加入我对每条配置项的认识,对于一些比较关键的配置项这里我做了我的观点,并且原本英语的说明我也不删除,供参考对比用。
Exampleconfigfile/etc/vsftpd/vsftpd.conf
Thedefaultcompiledinsettingsarefairlyparanoid.Thissamplefile
loosensthingsupabit,tomaketheftpdaemonmoreusable.
Pleaseseevsftpd.conf.5forallcompiledindefaults.
READTHIS:ThisexamplefileisNOTanexhaustivelistofvsftpdoptions.
Pleasereadthevsftpd.conf.5manualpagetogetafullideaofvsftpd's
capabilities.
AllowanonymousFTP?(Beware-allowedbydefaultifyoucommentthisout).
anonymous_enable=YES
anonymous_enable=NO
设定不允许匿名访问


Uncommentthistoallowlocaluserstologin.
local_enable=YES设定本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问。
UncommentthistoenableanyformofFTPwritecommand.
write_enable=YES
设定可以进行写操作。
Defaultumaskforlocalusersis077.Youmaywishtochangethisto022,
ifyourusersexpectthat(022isusedbymostotherftpd's)
local_umask=022
设定上传后文件的权限掩码。
UncommentthistoallowtheanonymousFTPusertouploadfiles.Thisonly
hasaneffectiftheaboveglobalwriteenableisactivated.Also,youwill
obviouslyneedtocreateadirectorywritablebytheFTPuser.
anon_upload_enable=YES
anon_upload_enable=NO
禁止匿名用户上传。
UncommentthisifyouwanttheanonymousFTPusertobeabletocreate
newdirectories.
anon_mkdir_write_enable=YES
anon_mkdir_write_enable=NO
禁止匿名用户建立目录。
Activatedirectorymessages-messagesgiventoremoteuserswhenthey
gointoacertaindirectory.
dirmessage_enable=YES
设定开启目录标语功能。
Activateloggingofuploads/downloads.
xferlog_enable=YES
设定开启日志记录功能。


MakesurePORTtransferconnectionsoriginatefromport20(ftp-data).
connect_from_port_20=YES
设定端口20进行数据连接。
Ifyouwant,youcanarrangeforuploadedanonymousfilestobeownedby
adifferentuser.Note!Using"root"foruploadedfilesisnot
recommended!
chown_uploads=YES
chown_uploads=NO
设定禁止上传文件更改宿主。
chown_username=whoever
Youmayoverridewherethelogfilegoesifyoulike.Thedefaultisshown
below.
xferlog_file=/var/log/vsftpd.log
设定CentOSVsftpd配置的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来,并且由于这里更改了CentOSVsftpd配置的服务宿主用户为手动建立的Vsftpd。必须注意给与该用户对日志的写入权限,否则服务将启动失败。
Ifyouwant,youcanhaveyourlogfileinstandardftpdxferlogformat
xferlog_std_format=YES
设定日志使用标准的记录格式。
Youmaychangethedefaultvaluefortimingoutanidlesession.
idle_session_timeout=600
设定空闲连接超时时间,这里使用默认。将具体数值留给每个具体用户具体指定,当然如果不指定的话,还是使用这里的默认值600,单位秒。

Youmaychangethedefaultvaluefortimingoutadataconnection.
data_connection_timeout=120
设定单次最大连续传输时间,这里使用默认。将具体数值留给每个具体用户具体指定,当然如果不指定的话,还是使用这里的默认值120,单位秒。
Itisrecommendedthatyoudefineonyoursystemauniqueuserwhichthe
ftpservercanuseasatotallyisolatedandunprivilegeduser.
nopriv_user=ftpsecure
nopriv_user=vsftpd
设定支撑CentOSVsftpd服务的宿主用户为手动建立的Vsftpd用户。注意,一旦做出更改宿主用户后,必须注意一起与该服务相关的读写文件的读写赋权问题。比如日志文件就必须给与该用户写入权限等。
EnablethisandtheserverwillrecogniseasynchronousABORrequests.Not
recommendedforsecurity(thecodeisnon-trivial).Notenablingit,
however,mayconfuseolderFTPclients.
async_abor_enable=YES
设定支持异步传输功能。
BydefaulttheserverwillpretendtoallowASCIImodebutinfactignore
therequest.TurnonthebelowoptionstohavetheserveractuallydoASCII
manglingonfileswheninASCIImode.
BewarethatonsomeFTPservers,ASCIIsupportallowsadenialofservice
attack(DoS)viathecommand"SIZE/big/file"inASCIImode.vsftpd
predictedthisattackandhasalwaysbeensafe,reportingthesizeofthe
rawfile.
ASCIImanglingisahorriblefeatureoftheprotocol.
ascii_upload_enable=YES
ascii_download_enable=YES
设定支持ASCII模式的上传和下载功能。
Youmayfullycustomisetheloginbannerstring:
ftpd_banner=ThisVsftpserversupportsvirtualusers^_^
设定CentOSVsftpd配置的登陆标语。
Youmayspecifyafileofdisallowedanonymouse-mailaddresses.Apparently
usefulforcombattingcertainDoSattacks.
deny_email_enable=YES


(defaultfollows)
banned_email_file=/etc/vsftpd/banned_emails
Youmayspecifyanexplicitlistoflocaluserstochroot()totheirhome
directory.Ifchroot_local_userisYES,thenthislistbecomesalistof
userstoNOTchroot().
chroot_list_enable=YES
chroot_list_enable=NO
禁止用户登出自己的FTP主目录。
(defaultfollows)
chroot_list_file=/etc/vsftpd/chroot_list
Youmayactivatethe"-R"optiontothebuiltinls.Thisisdisabledby
defaulttoavoidremoteusersbeingabletocauseexcessiveI/Oonlarge
sites.However,somebrokenFTPclientssuchas"ncftp"and"mirror"assume
thepresenceofthe"-R"option,sothereisastrongcaseforenablingit.
ls_recurse_enable=YES
ls_recurse_enable=NO
禁止用户登陆FTP后使用"ls-R"的命令。该命令会对服务器性能造成巨大开销。如果该项被允许,那么挡多用户同时使用该命令时将会对该服
务器造成威胁。
When"listen"directiveisenabled,vsftpdrunsinstandalonemodeand
listensonIPv4sockets.Thisdirectivecannotbeusedinconjunction
withthelisten_ipv6directive.
listen=YES
设定该CentOSVsftpd服务工作在StandAlone模式下。顺便展开说明一下,所谓StandAlone模式就是该服务拥有自己的守护进程支持,在ps-A命令下我们将可用看到vsftpd的守护进程名。如果不想工作在StandAlone模式下,则可以选择SuperDaemon模式,在该模式下vsftpd将没有自己的守护进程,而是由超级守护进程Xinetd全权代理,与此同时,Vsftp服务的许多功能将得不到实现。
ThisdirectiveenableslisteningonIPv6sockets.TolistenonIPv4andIPv6
sockets,youmustruntwocopiesofvsftpdwhithtwoconfigurationfiles.
Makesure,thatoneofthelistenoptionsiscommented!!
listen_ipv6=YES
pam_service_name=vsftpd



设定PAM服务下CentOSVsftpd配置验证文件名。因此,PAM验证将参考/etc/pam.d/下的vsftpd文件配置。
userlist_enable=YES
设定userlist_file中的用户将不得使用FTP。
tcp_wrappers=YES
设定支持TCPWrappers。
KC:Thefollowingentriesareaddedforsupportingvirtualftpusers.
以下这些是关于Vsftpd虚拟用户支持的重要CentOSVsftpd配置项目。默认Vsftpd.conf中不包含这些设定项目,需要自己手动添加配置。
guest_enable=YES
设定启用虚拟用户功能。
guest_username=overlord
指定虚拟用户的宿主用户。
virtual_use_local_privs=YES
设定虚拟用户的权限符合他们的宿主用户。
user_config_dir=/etc/vsftpd/vconf
设定虚拟用户个人Vsftp的配置文件存放路径。也就是说,这个被指定的目录里,将存放每个Vsftp虚拟用户个性的配置文件,一个需要注意的
地方就是这些配置文件名必须和虚拟用户名相同。保存退出。
3.建立CentOSVsftpd配置的日志文件,并更该属主为Vsftpd的服务宿主用户:
[root@KcentOS5~]touch/var/log/vsftpd.log
[root@KcentOS5~]chownvsftpd.vsftpd/var/log/vsftpd.log
4.建立虚拟用户CentOSVsftpd配置文件存放路径:
[root@KcentOS5~]mkdir/etc/vsftpd/vconf/
CentOSvsftp已被广泛应用但是也在不断的更新,这里介绍CentOSvsftp安装设置使用,帮助大家安装更新CentOSvsftp系统。


CentOSvsftp安装:
1.安装CentOSVsftpd服务相关部件:
[root@KcentOS5~]#yuminstallvsftpd*
2.确认安装PAM服务相关部件:
[root@KcentOS5~]#yuminstallpam*
开发包,其实不装也没有关系,主要的目的是确认PAM。
3.安装DB4部件包:
这里要特别安装一个db4的包,用来支持文件数据库。
[root@KcentOS5~]#yuminstalldb4*
CentOSvsftp系统帐户
1.建立CentOSvsftp服务的宿主用户:
[root@CentOS5/]#chmod700/home/vftpsite
[root@KcentOS5~]#useraddvsftpd-s/sbin/nologin
默认的Vsftpd的服务宿主用户是root,但是这不符合安全性的需要。这里建立名字为vsftpd的用户,用他来作为支持Vsftpd的服务宿主用户。由于该用户仅用来支持Vsftpd服务用,因此没有许可他登陆系统的必要,并设定他为不能登陆系统的用户。[root@CentOS5/]#useradd–d/home/vftpsite–s/sbin/nologinvftpuser
2.建立CentOSvsftp虚拟宿主用户:
[root@KcentOS5nowhere]#useraddoverlord-s/sbin/nologin
本篇主要是介绍Vsftp的虚拟用户,虚拟用户并不是系统用户,也就是说这些FTP的用户在系统中是不存在的。他们的总体权限其实是集中寄托在一个在系统中的某一个用户身上的,所谓Vsftpd的虚拟宿主用户,就是这样一个支持着所有虚拟用户的宿主用户。由于他支撑了FTP的所有虚拟的用户,那么他本身的权限将会影响着这些虚拟的用户,因此,处于安全性的考虑,也要非分注意对该用户的权限的控制,该用户也绝对没有登陆系统的必要,这里也设定他为不能登陆系统的用户。
(这里插一句:原本在建立上面两个用户的时候,想连用户主路径也不打算给的。本来想加上-d/home/nowhere的,据manuseradd手册上讲
述:-d,--homeHOME_DIR
ThenewuserwillbecreatedusingHOME_DIRasthevalueforthe
user鈙logindirectory.ThedefaultistoappendtheLOGINnameto
BASE_DIRandusethatasthelogindirectoryname.Thedirectory
HOME_DIRdoesnothavetoexistbutwillnotbecreatedifitis
missing.
使用-d参数指定用户的主目录,用户主目录并不是必须存在的。如果没有存在指定的目录的话,那么它将不会被建立。结果我尝试-d/home/nowhere指定到一个并不存在的目录的时候,我KAO!竟然给我自己新建了一个==#)
【原创】FTP服务时互联网上比较古老的一种应用,至今Interner应用面非常广泛,但令管理员头痛不已的是其用户管理,既多且杂,如何解决这一问题呢?使用MySQL与ProFTP或VsFTP软件结合可以搭建一个高效、稳定且集中管理的FTP服务器。本来就来介绍一下如何搭建一个方便管理的基于MySQL数据库的FTP服务器。


一、软件版本的选择:
搭建基于数据库的FTP服务器首先要选择合适的软件。下面就是所选择软件的详细信息:
◆Linux版本RHEL5;
◆MySQL版本MySQL-standard-5.1.30-1.rhel5.src.rpm;
◆FTP服务器proftpd-1.3.2.tar.gz和vsftpd-2.2.1.tar.gz;
◆MySQL的PAM验证程序pam_mysql-0.8RC1.tar.gz;
需要说明的是,RHEL5安装时自定义安装,developmenttools项必须选择,否则编译调试软件时需要的软件包需另行安装;其次,要确保所安装Linux系统时没有安装MySQL与FTP服务器等软件,如果有则先卸载;再次,ProFTPD与VsFTPD两者不要在同台计算机同时使用,这样会造成意想不到的问题,读者根据自己的需求和软件的具体功能选择其中之一。
建立程序安装目录
整个安装过程以root用户执行如下命令:
#cd/soft/programe
#mkdirmysq
需要注意目录名称的大小写。
#mkdirproftpd
#mkdirpam_mods
MySQL的安装目录为/soft/program/mysql,ProFTPD的安装目录为/soft/program/proftpd,pam_mysq1.so的安装目录为/soft/program/pam_mods,/storage是一个已经存在的目录,所有的FTP用户上传和下载文件都存放在这里。
安装MySQL
◆增加一个管理MySQL的用户和组:
#groupaddmysqlgrp
#useradd-gmysqlgrpmysqladm
#passwdmysqladm
◆切换到MySQL-stan-dard-5.1.30-1.rhel5.src.rpm文件所在的目录,执行以下步骤安装:
#rpm-ivhMySQL-stan-dard-5.1.30-1.rhel5.src.rpm
此条命令解压出mysql-5.1.30.tar.gz文件存放在以下的目录中。
#cd/usr/src/redhat/SOURCE
#tarzxvfmysqt-5.1.30.tar.gz
#cdmysql-5.1.30
#./configurePrefix=/soft/program/mysql--with-extra-charsets=all
其中,--prefix=/soft/program/mysql参数是用来指定Mysql的安装目录,--with-extra-charsets=all是用来支持所有的字符集。
#make
#makeinstall


◆初始化数据库
#cd/soft/program/mysql/bin
#./mysql_install_db
◆为了安全要修改数据库存放目录的属主信息和访问模式/soft/program/mysqll/var为数据库存放的缺省目录
#cd/soft/program/mysql
#chown–Rmysqladm:mysqlgrpvar
#chmod-Rgo-wrxvar
◆修改配置文件
#cd/soft/program/mysql/share/mysql
#cpmy-small.cnf/etc/my.cnf
#cd/etc
在my.cnf文件中,增加如下内容:
[mysql]
user=mysqladm#表示用mysqladm用户启动MySQL#
default-character-set=utf8#表示使用UTF-8字符集,此种字符集通用性较好,也很好的支持中文,当然也可以直接使用GBK。
[clent]
Default-character-set=utf8
◆启动
启动方式有两种,一种是手工启动,一种是自动启动,其中手工启动的操作如下:
#cd/soft/program/mysql/bin
#./mysqld_safe&
自动启动则需要在/etc/rc.d/rc/local中加入以下的内容,开机自动启动MySQL数据库:
If[-x/soft/program/mysql/bin/mysqld_safe];then
install_path_name/bin/mysqld_safe&
fi


◆修改管理员密码
使用如下命令修改数据库密码:
#cd/soft/program/mysql/bin
#./mysqladmin-hlocalhost-urootpassword'123456'
上述命令的意思是本机上(-hhost)使用的管理数据库的缺省管理账号root。需要注意的事,此root并非Linux系统中的root用户,密码设置为123456.

安装ProFTPD
◆切换到proftpd-1.3.2.tar.gz文件所在的目录,执行以下步骤安装:
#tarzxvfproftpd-1.3.2.tar.gz
#cdproftpd-1.3.2
#./configure--prefix=/soft/program/proftpd--with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql
此参数将支持MySQL和Quota模块添加进来。
--with-includes=/soft/program/mysql/include/mysql
上述参数指定MySQL中include的目录路径。
--with-libraries=/soft/program/mysql/lib/mysql
此参数指定MySQL中lib的目录路径。
#make
#makeinstall
使用如下命令建立一个用于管理ProFTPD的Linux系统账号和组。
#groupadd-g2009ftpgroup
#useradd-u2009–s/bin/false-d/storage-gftpgroupftpuser
#chown-Rftpuser.ftpgroup/storage
#chmod–Rgo-wrx-/storage
#chmod–Ru+wrx/storage
简单修改ProFTPD配置文件,使之正常运行:
#cd/soft/program/proftpd/etc
用编辑器打开proftpd.conf,修改一下的内容:
#Settheuserandgroupunderwhichtheserverwillrun.
Userftpuser
Groupftpgroup


◆启动ProFTPD
启动Proftpd同样有两种方法,即手工启动和自动启动,其中手工启动操作如下:
#cd/soft/program/proftpd/sbin/
#./proftpd
此时一个基本的FTP服务器已经搭建成,可以进行测试了。需要注意的是,启动时如果出现具有以下信息的错误:
errorwhileloadingsharedlibraries:libmysqlclient.so.15:cannotopensharedobjectfile:Nosuchfileordirectory
通常的解决办法如下:
#cd/etc
用文本工具打开ld.so.conf,添加以下的内容/soft/program/mysql/lib/mysql
#ldconflg
更新ld.socachefile。
要让ProFTPD自动启动在/etc/rc.d/rc.local中加入以下的内容,开机即可自启动ProFTPD:
/soft/program/proftpd/sbin/proftpd


二、MySQL与ProFTPD组合
在MySQL中建立一个名为ftp的数据库,在该数据库中建立以下的四个表:
◆登录FTP服务器的用户表ftpusers,字段信息如下所示,这些字段是必需的,其他字段根据自己的需要添加,参考字段如下:
'userid'textNOTNULL#用户登录账号#
'passwd'textNOTNULL#用户登录密码#
'uid'int(11)NOTNULLdefault'2009',#与Linux系统账号ftpuser的UID号一致#
'gid'int(11)NOTNULLdefault'2009',#与Linux系统组#
ftpgroup的GID号一致'homedir'text,用户文件上传下载目录,如账号名为abc,此处就填写/storage/abc,'shell'textdefault,'/sbin/nologin'这个是用来指定用户是否能登录Linux系统,这里默认的是不能登录。
◆FTP用户归属表ftpgroups,字段信息如下所示,关于建立该组的目的将在quotalimits表中说明
'groupname'textNOTNULL#组名#
'gid'smallint(6)NOTNULLdefault'0',#组的id号#
'memembers'textNOTNULL#成员#
◆用于设置磁盘限额相关信息的表quotalimits和quotatallies,这两个表的字段请不要改动,它是与ProFTPD的配置文件紧密联系,quotalimits表的字段信息如下:
'name'varchar(30)defaultNULL,
'quota_type'enum('user','group','class','all')NOTNULLdefault'user',
'per_session'enum('false','true')NOTNULLdefault'false',
'limit_type'enum('soft','hard')NOTNULLdefault'soft',
'bytes_in_avail'floatNOTNULLdefault'0',
'bytes_out_avail'floatNOTNULLdefault'0',
'bytes_xfer_avail'floatNOTNULLdefault'0',
'files_in_avail'int(10)unsignedNOTNULLdefault'0',
'files_out_avail'int(10)unsignedNOTNULLdefault'0',
'files_xfer_avail'int(10)unsignedNOTNULLdefault'0'
需要注意的是,name应该这样理解,既能表示单个用户,也能表示用户组名。如果在quota_type(限额类型)中使用group来认证的话,那就得在这里设置组名,这样整组都具有统一的磁盘限额的特性,当然要在ftpgroups表中插入组记录,并且在member字段中得把用户一个一个的列进去。默认值可以为空NULL。如果为空,则针对所在有quota_type中设置的类型,比如在quota_type中设置为user,就是针对所有ftpusers中的用户起作用,如果是group名,也是对ftpgroups所有组作用。quota_type磁盘限额类型,可以设置为用户,也可以设置为用户组group。如果name写的是用户组,这里就得设置为group来认定。默认为user认证。per_session默认为false.limit_type默认为soft。Bytes_in_avail用户占用空间大小,也就是FTP用户空间容量,单位是byte,默认为0,0是不受限制,以下同理。bytes_out_avail所有下载文件的总和,默认为0。
bytes_xfer_avail一个用户上传下载流量总和,默认为0。files_in_avail限制上传文件总和,默认为0。files_out_avail限制下载文件个数总计,默认为0。files_xfer_avail允许下载和上传的文件总和,默认为0。Quotatallies表的字段信息,各字段信息参照quotalimits。配置参考参数如下:


nameVARCHAR(30)NOTNULL,
quota_typeENUM("user","group","class","all")NOTNULL,
bytes_in_usedFLOATNOTNULL,
bytes_out_usedFLOATNOTNULL,
bytes_xfer_usedFLOATNOTNULL,
files_in_usedINTUNSIGNEDNOTNULL,
files_out_usedINTUNSIGNEDNOTNULL,
files_xfer_usedINTUNSIGNEDNOTNULL
此外,在proftpd.conf文件中增加以下的内容:
◆数据库连接的信息,ftp是数据库名,localhost是主机名,root是连接数据库的用户名,123456是密码。
root123456
◆数据库认证的类型,Plaintext表示明文认证方式
SQLAuthTYpesBackendPlaintext
◆指定用来做用户认证的表的有关信息
SALUserlnfoftpusersuseridpasswduidgidhomedirshell
SQLGrouplnfoftpgroupsgroupnamegidmembers
◆校验数据表
SQLAuthenticateusersgroupsusersetfastgroupsetfast
◆如果home目录不存在,则系统会根据ftpusers表中的home字段。
新建一个目录:
SQLHomedirOnDemandon
◆打开磁盘限额引擎
QuotaEngineon
◆设置磁盘限额
QuotaDirectoryTallyon




◆设置磁盘容量显示时的单位
QuotaDisplayUnitsMb
◆设置磁盘限额日志文件
QuotaLog/usr/local/proftpd/var/quota
◆显示磁盘限额信息
ftp登录后可执行quotesitequota命令查看当前磁盘使用情况:
QuotaShowQuotason
◆设置磁盘限额日志文件
QuotaLog/var/log/quota
◆指定磁盘限额模块使用的数据库信息
SQLNamedQuerget-quota-limitSELECT"name,quota_type,bytes_in_avail,bytes_out_avail,bytes_xfer_avail,files_in_avail,files_out_avail,files_xfer_availFROMquotalimitsWHEREname='%{0}'ANDquota_type='%{1}'"
SQLNamedQueryget-quota-tallySELECT"name,quota_type,bytes_in_used,bytes_out_used,bytes_xfer_used,files_in_used,files_out_used,filed_xfer_used,FROMquotatalliesWHEREname='%{0}'ANDquota_type='%{1}"
SQLNamedQueryupdate-quota-tallyUPDATE"bytes_in_used=bytes_in_used+%{0},bytes_out_used=bytes_out_used+%{1},bytes_xfer_used=bytes_xfer_used+%{2},files_in_used=files_in_used+%{3},files_out_used=files_out_used+%{4},files_xfer_used=files_xfer_used+%{5}WHEREname='%{6}'ANDquota_type='%{7}'"quotatallies
SQLNamedQueryinsert-quota-tallyINSERT"%{0},%{1},%{2},%{3},%{4},%{5},%{6},%{7}"quotatallies
QuotaLimitTablesql:/get-quota-limit
QuotaTallyTablesql:/get-quota-tally/update-quota-tally/insert-quota-tally
另外,读者还可以在proftpd.conf中添加一些有关超时、限制连接次数、加快连接速度、支持断点传输及安全传输等内容。
anon_other_write_enable=YES
ascll_upload_enable=YES
ascll_download_enable=YES
VsFTPD配置文件中还可以进行更多的设置,如磁盘配额、虚拟用户个人目录的建立、性能与负载控制、FTP被动模式断口设置、安全设置等,读者根据自己的需要进一步的完善。
◆编辑文件
修改/etc/pam.d/ftp中去掉其他的内容,添加以下的内容:
#auth
authrequired/soft/program/pam_mods/pam_mysql.so
user=ftpuserpasswd=6789host=localhostdb=ftp
table=ftpusersusercolumn=useridpasswdcolumn=passwdcrypt=0
#account
Accountrequired/soft/program/pam_mods/pam_mysql.so
User=ftpuserpasswd=6789host=localhostdb=ftptable=ftpusersusercolumn=useridpasswdcolumn=passwdcrypt=0
涉及到的参数,只要对应前面数据库的设置就可以明白它们的含义。其中:crypt=0,口令以明文方式(不加密)保存在数据库中,crypt=1,口令使用Unix系统的DES加密方式加密后保存在数据库中;crypt=2,口令经过MySQL的password()函数加密后保存。FTP数据库中ftpusers表的授权用户ftpusers和密码必须正确设置。


◆开机自启动VsFTPD
请将vsftpd-2.2.1/xinetd.d/vsftpd文件制到/etc/xinetd.d/中(如果该目录中没有该文件)。此外,还需设置vsftpd.conf中listen和Tcp_Wrappers参数,将其都设置为NO,最后,用ntsysv命令,选中Vsftpd守护进程即可。
通过上面的知识,结合Apache、PHP等软件可以开发许多功能,如自动申请主页空间等,而且使用phpMyAdmin可以以Web方式管理MySQL,很容易的添加和删除用户,这样FTP用户管理就轻松多了。

发表评论:

最近发表
网站分类
标签列表