分类目录归档:Linux

Linux服务器配置、安全设置、常见问题等

安装virtualmin/webmin,错误提示:Perl was not found on your system

安装virtualmin/webmin失败的解决办法:Perl was not found on your system

Checking for perl…Perl was not found on your system: Please install perl and try again

很明显,需要安装 perl

yum -y install perl perl*

这时候开始安装perl,这个命令基本上把perl的模块给安装齐了,如果你对perl模块版本要求比较高,希望是新版的那么请按照一下安装:

yum install perl
yum install cpan

以后有什么需要直接用cpan编译安装。
然后就可以顺利安装virtualmin/webmin了
如果还提示安装php失败,可以检查vi /etc/yum.conf
删除类似 exclude=php*5.3*

Linux 服务器安全配置总结(RedHat)

本文针对RedHat Linux而写,其他版本的Linux服务器可参考而设。
1.概述
Linux服务器版本:RedHat Linux AS
对于开放式的操作系统—Linux,系统的安全设定包括系统服务最小化、限制远程存取、隐藏重要资料、修补安全漏洞、采用安全工具以及经常性的安全检查等。本文主要从用户设置、如何开放服务、系统优化等方面进行系统的安全配置,以到达使Linux服务器更安全、稳定。
2.用户管理
在 Linux系统中,用户帐号是用户的身份标志,它由用户名和用户口令组成。系统将输入的用户名存放在/etc/passwd文件中,而将输入的口令以加密的形式存放在/etc/shadow文件中。在正常情况下,这些口令和其他信息由操作系统保护,能够对其进行访问的只能是超级用户(root)和操作系统的一些应用程序。但是如果配置不当或在一些系统运行出错的情况下,这些信息可以被普通用户得到。进而,不怀好意的用户就可以使用一类被称为“口令破解”的工具去得到加密前的口令。
2.1 删除系统特殊的的用户帐号和组帐号:
#userdel username
userdel adm
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel news
userdel uucp
userdel operator
userdel games
userdel gopher
以上所删除用户为系统默认创建,但是在常用服务器中基本不使用的一些帐号,但是这些帐号常被黑客利用和攻击服务器。
#groupdel username
groupdel adm
groupdel lp
groupdel news
groupdel uucp
groupdel games
groupdel dip
同样,以上删除的是系统安装是默认创建的一些组帐号。这样就减少受攻击的机会。
2.2 用户密码设置:
安装linux时默认的密码最小长度是5个字节,但这并不够,要把它设为8个字节。修改最短密码长度需要编辑login.defs文件(vi /etc/login.defs)
PASS_MAX_DAYS 99999 ##密码设置最长有效期(默认值)
PASS_MIN_DAYS 0 ##密码设置最短有效期
PASS_MIN_LEN 5 ##设置密码最小长度
PASS_WARN_AGE 7 ##提前多少天警告用户密码即将过期。
2.3 修改自动注销帐号时间:
自动注销帐号的登录,在Linux系统中root账户是具有最高特权的。如果系统管理员在离开系统之前忘记注销root账户,那将会带来很大的安全隐患,应该让系统会自动注销。通过修改账户中“TMOUT”参数,可以实现此功能。TMOUT按秒计算。编辑你的profile文件(vi /etc/profile),在”HISTSIZE=”后面加入下面这行:
TMOUT=300
300,表示300秒,也就是表示5分钟。这样,如果系统中登陆的用户在5分钟内都没有动作,那么系统会自动注销这个账户。
2.4 给系统的用户名密码存放文件加锁:
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/gshadow
chattr +i /etc/group
注:chattr是改变文件属性的命令,参数i代表不得任意更动文件或目录,此处的i为不可修改位(immutable)。查看方法:lsattr /etc/passwd
3.服务管理
在Linux系统的服务管理方面,如果想做到服务的最好安全,其中主要的就是升级服务本身的软件版本,另外一个就是关闭系统不使用的服务,做到服务最小化。
3.1 关闭系统不使用的服务:
cd /etc/init.d ##进入到系统init进程启动目录
在这里有两个方法,可以关闭init目录下的服务,一、将init目录下的文件名mv成*.old类的文件名,即修改文件名,作用就是在系统启动的时候找不到这个服务的启动文件。二、使用chkconfig系统命令来关闭系统启动等级的服务。
注:在使用以下任何一种方法时,请先检查需要关闭的服务是否是本服务器特别需要启动支持的服务,以防关闭正常使用的服务。
第一种:修改文件名的方法
Cd /etc/init.d/
mv apmd apmd.old ##笔记本需要
mv netfs netfs.old ## nfs客户端
mv yppasswdd yppasswdd.old ## NIS服务器,此服务漏洞很多
mv ypserv ypserv.old ## NIS服务器,此服务漏洞很多
mv dhcpd dhcpd.old ## dhcp服务
mv portmap portmap.old ##运行rpc(111端口)服务必需
mv lpd lpd.old ##打印服务
mv nfs nfs.old ## NFS服务器,漏洞极多
mv sendmail sendmail.old ##邮件服务, 漏洞极多
mv snmpd snmpd.old ## SNMP,远程用户能从中获得许多系统信息
mv rstatd rstatd.old ##避免运行r服务,远程用户可以从中获取很多信息
mv atd atd.old ##和cron很相似的定时运行程序的服务
第二种:使用chkcofig命令来关闭不使用的系统服务
chkconfig ?Clevel 35 apmd off
chkconfig ?Clevel 35 netfs off
chkconfig ?Clevel 35 yppasswdd off
chkconfig ?Clevel 35 ypserv off
chkconfig ?Clevel 35 dhcpd off
chkconfig ?Clevel 35 portmap off
chkconfig ?Clevel 35 lpd off
chkconfig ?Clevel 35 nfs off
chkconfig ?Clevel 35 sendmail off
chkconfig ?Clevel 35 snmpd off
chkconfig ?Clevel 35 rstatd off
chkconfig ?Clevel 35 atd off
注:以上chkcofig 命令中的3和5是系统启动的类型,3代表系统的多用启动方式,5代表系统的X启动方式。
3.2 给系统服务端口列表文件加锁
主要作用:防止未经许可的删除或添加服务
chattr +i /etc/services
3.3 修改ssh服务的root登录权限
修改ssh服务配置文件,使的ssh服务不允许直接使用root用户来登录,这样建设系统被恶意登录攻击的机会。
vi /etct/ssh/sshd_config
PermitRootLogin yes
将这行前的#去掉后,修改为:PermitRootLogin no
4.系统文件权限
Linux 文件系统的安全主要是通过设置文件的权限来实现的。每一个Linux的文件或目录,都有3组属性,分别定义文件或目录的所有者,用户组和其他人的使用权限(只读、可写、可执行、允许SUID、允许SGID等)。特别注意,权限为SUID和SGID的可执行文件,在程序运行过程中,会给进程赋予所有者的权限,如果被黑客发现并利用就会给系统造成危害。
4.1 修改init目录文件执行权限:
chmod -R 700 /etc/init.d/*
4.2 修改部分系统文件的SUID和SGID的权限:
chmod a-s /usr/bin/chage
chmod a-s /usr/bin/gpasswd
chmod a-s /usr/bin/wall
chmod a-s /usr/bin/chfn
chmod a-s /usr/bin/chsh
chmod a-s /usr/bin/newgrp
chmod a-s /usr/bin/write
chmod a-s /usr/sbin/usernetctl
chmod a-s /usr/sbin/traceroute
chmod a-s /bin/mount
chmod a-s /bin/umount
chmod a-s /bin/ping
chmod a-s /sbin/netreport
4.3 修改系统引导文件
chmod 600 /etc/grub.conf
chattr +i /etc/grub.conf
5.系统优化
5.1 虚拟内存优化:
一般来说,linux的物理内存几乎是完全used。这个和windows非常大的区别,它的内存管理机制将系统内存充分利用,并非windows无论多大的内存都要去使用一些虚拟内存一样。
在/proc/sys/vm/freepages中三个数字是当前系统的:最小内存空白页、最低内存空白页和最高内存空白。
注意,这里系统使用虚拟内存的原则是:如果空白页数目低于最高空白页设置,则使用磁盘交换空间。当达到最低空白页设置时,使用内存交换。内存一般以每页4k 字节分配。最小内存空白页设置是系统中内存数量的2倍;最低内存空白页设置是内存数量的4倍;最高内存空白页设置是系统内存的6倍。
以下以1G内存为例修改系统默认虚拟内存参数大小:
echo “2048 4096 6444” >/proc/sys/vm/freepages
6.日志管理
6.1 系统引导日志:
dmesg
使用 dmesg 命令可以快速查看最后一次系统引导的引导日志。通常它的
内容会很多,所以您往往会希望将其通过管道传输到一个阅读器。
6.2 系统运行日志:
A、Linux 日志存储在 /var/log 目录中。这里有几个由系统维护的日志文件,但其他服务和程序也可能会把它们的日志放在这里。大多数日志只有 root 才可以读,不过只需要修改文件的访问权限就可以让其他人可读。
以下是常用的系统日志文件名称及其描述:
lastlog 记录用户最后一次成功登录时间
loginlog 不良的登陆尝试记录
messages 记录输出到系统主控台以及由syslog系统服务程序产生的消息
utmp 记录当前登录的每个用户
utmpx 扩展的utmp
wtmp 记录每一次用户登录和注销的历史信息 wtmpx 扩展的wtmp
vold.log 记录使用外部介质出现的错误
xferkig 记录Ftp的存取情况 sulog 记录su命令的使用情况
acct 记录每个用户使用过的命令
aculog 拨出自动呼叫记录
B、/var/log/messages
messages 日志是核心系统日志文件。它包含了系统启动时的引导消息,以及系统运行时的其他状态消息。IO 错误、网络错误和其他系统错误都会记录到这个文件中。其他信息,比如某个人的身份切换为 root,也在这里列出。如果服务正在运行,比如 DHCP 服务器,您可以在 messages 文件中观察它的活动。通常,/var/log/messages 是您在做故障诊断时首先要查看的文件。
C、/var/log/XFree86.0.log
这个日志记录的是 Xfree86 Xwindows 服务器最后一次执行的结果。如果您在启动到图形模式时遇到了问题,一般情况从这个文件中会找到失败的原因。
D、在/var/log 目录下有一些文件以一个数字结尾,这些是已轮循的归档文件。日志文件会变得特别大,特别笨重。Linux 提供了一个命令来轮循这些日志,以使您的当前日志信息不会淹没在旧的无关信息之中。 logrotate 通常是定时自动运行的,但是也可以手工运行。当执行后,logrotate 将取得当前版本的日志文件,然后在这个文件名最后附加一个“.1”。其他更早轮循的文件为“.2”、“.3”,依次类推。文件名后的数字越大,日志就越老。
可以通过编辑 /etc/logrotate.conf 文件来配置 logrotate 的自动行为。通过 man logrotate 来学习 logrotate 的全部细节。
其中:
# rotate log files weekly
weekly
这里代表每个日志文件是每个星期循环一次,一个日志文件保存一个星期的内容。
# keep 4 weeks worth of backlogs
rotate 4
这里代表日志循环的次数是4次,即可以保存4个日志文件。
E、定制日志
可以通过编辑 /et/syslog.conf 和 /etc/sysconfig/syslog 来配置它们的行为,可以定制系统日志的存放路径和日志产生级别。
6.3 系统各用户操作日志:
last
单独执行last指令,它会读取位于/var/log目录下,名称为wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。
history
history 命令能够保存最近所执行的命令。如果是root命令所保存的命令内容在/root/.bash_history文件中,如果是普通用户,操作所命令保存在这个用户的所属目录下,即一般的/home/username/.bash_history。这个history的保存值可以设置,编辑/etc /profile文件,其中的HISTSIZE=1000的值就是history保存的值。
7.防火墙
7.1 iptables类型防火墙:
7.1.1 iptables概念:
Iptalbes(IP包过滤器管理)是用来设置、维护和检查Linux内核的IP包过滤规则的。
可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。这被称作’target'(目标),也可以跳向同一个表内的用户定义的链。
通过使用用户空间,可以构建自己的定制规则,这些规则存储在内核空间的信息包过滤表中。这些规则具有目标,它们告诉内核对来自某些源、前往某些目的地或具有某些协议类型的信息包做些什么。如果某个信息包与规则匹配,那么使用目标 ACCEPT 允许该信息包通过。还可以使用目标 DROP 或 REJECT 来阻塞并杀死信息包。对于可对信息包执行的其它操作,还有许多其它目标。
根据规则所处理的信息包的类型,可以将规则分组在链中。处理入站信息包的规则被添加到 INPUT 链中。处理出站信息包的规则被添加到 OUTPUT 链中。处理正在转发的信息包的规则被添加到 FORWARD 链中。这三个链是基本信息包过滤表中内置的缺省主链。另外,还有其它许多可用的链的类型(如 PREROUTING 和 POSTROUTING),以及提供用户定义的链。每个链都可以有一个策略,它定义“缺省目标”,也就是要执行的缺省操作,当信息包与链中的任何规则都不匹配时,执行此操作。
建立规则并将链放在适当的位置之后,就可以开始进行真正的信息包过滤工作了。这时内核空间从用户空间接管工作。当信息包到达防火墙时,内核先检查信息包的头信息,尤其是信息包的目的地。我们将这个过程称为路由。
如果信息包源自外界并前往系统,而且防火墙是打开的,那么内核将它传递到内核空间信息包过滤表的 INPUT 链。如果信息包源自系统内部或系统所连接的内部网上的其它源,并且此信息包要前往另一个外部系统,那么信息包被传递到 OUTPUT 链。类似的,源自外部系统并前往外部系统的信息包被传递到 FORWARD 链。
7.1.2 iptables实例1:
#!/bin/sh
# 禁止系统的转发包功能
echo 0 > /proc/sys/net/ipv4/ip_forward
# 清楚iptables原有规则,并设置iptables默认规则
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -t nat -F OUTPUT
iptables -F
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# 在input规则中需要打开的tcp、upd端口
iptables -A INPUT -j ACCEPT -p tcp –dport 80
iptables -A INPUT -j ACCEPT -p tcp –dport 22
iptables -A INPUT -j ACCEPT -p tcp –dport 25
iptables -A INPUT -j ACCEPT -p tcp –dport 1352
iptables -A INPUT -p udp –destination-port 53 -j ACCEPT
# 在input规则中状态为:STATE RELATED 的包都接受
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
# 启用系统ip转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
< –end– >
7.1.3 iptables实例2:
注:这个实例中,只需要设置tcp、udp端口和服务器网络段ip范围即可,其他已经默认设置好。
#!/bin/sh
# make:yongzhang
# time:2004-06-18
# e-mail: yongzhang@wiscom.com.cn
PATH=/sbin:/bin:/usr/sbin:/usr/bin
##tcp allow ports
TPORTS=”80 22″
##udp allow ports
UPORTS=”53″
##internal server_ip range
SERVER_IP=”172.18.10.0/24″
##disable forwarding
echo 0 > /proc/sys/net/ipv4/ip_forward
##reset default policies
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
##del all iptables rules
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
##clean all non-default chains
iptables -X
iptables -t nat -X
##iptables default rules
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
##allow ping packets
iptables -A INPUT -p ICMP -s 0/0 –icmp-type 0 -j ACCEPT
iptables -A INPUT -p ICMP -s 0/0 –icmp-type 3 -j ACCEPT
iptables -A INPUT -p ICMP -s 0/0 –icmp-type 5 -j ACCEPT
iptables -A INPUT -p ICMP -s 0/0 –icmp-type 8 -j ACCEPT
iptables -A INPUT -p ICMP -s 0/0 –icmp-type 11 -j ACCEPT
#iptables -A INPUT -p ICMP -s 0/0 –icmp-type 11 -m limit –limit 5/s -j ACCEPT
iptables -A FORWARD -p ICMP -j ACCEPT
##enable forwarding
iptables -A FORWARD -m state –state ESTABLISHED,RELATED -j ACCEPT
##STATE RELATED for router
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
##accept internal packets on the internal i/f
iptables -A INPUT -s $SERVER_IP -p tcp -j ACCEPT
##open ports on router for server/services
##TCP PORTS
for ATP in $TPORTS
do
iptables -A INPUT ! -s $SERVER_IP -d $SERVER_IP -p tcp –destination-port $ATP -j ACCEPT
iptables -A FORWARD -p tcp –destination-port $ATP -j ACCEPT
done
##UDP PORTS
for AUP in $UPORTS
do
iptables -A INPUT -p udp –destination-port $AUP -j ACCEPT
iptables -A FORWARD -p udp –destination-port $AUP -j ACCEPT
done
##bad_packets chain
##drop INVALID packets immediately
iptables -A INPUT -p ALL -m state –state INVALID -j DROP
##limit SYN flood
#iptables -A INPUT -f -m limit –limit 100/s –limit-burst 100 -j ACCEPT
#iptables -A FORWARD -f -m limit –limit 100/s –limit-burst 100 -j ACCEPT
##deny all ICMP packets,eth0 is external net_eth
#iptables -A INPUT -i eth0 -s 0.0.0.0/0 -p ICMP -j DROP
##allow loopback
iptables -A INPUT -i lo -p all -j ACCEPT
iptables -A OUTPUT -o lo -p all -j ACCEPT
##enable forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
< –end– >
7.2 ipchains类型防火墙:
7.2.1 ipchains概念:
Ipchains 被用来安装、维护、检查Linux内核的防火墙规则。规则可以分成四类:IP input链、IP output链、IP forward链、user defined 链。
一个防火墙规则指定包的格式和目标。当一个包进来时, 核心使用input链来决定它的命运。 如果它通过了, 那么核心将决定包下一步该发往何处(这一步叫路由)。假如它是送往另一台机器的, 核心就运用forward链。如果不匹配,进入目标值所指定的下一条链,那有可能是一条user defined链,或者是一个特定值: ACCEPT,DENY,REJECT,MASQ,REDIRECT,RETURN。
ACCEPT意味着允许包通过,DENY 扔掉包就象没有受到过一样,REJECT也把包扔掉,但(假如它不是 ICMP 包)产生一个 ICMP 回复来告诉发包者,目的地址无法到达(请注意DENY和REJECT对于ICMP包是一样的)。
MASQ 告诉核心伪装此包,它只对forward 链和user defined链起作用,想让它起作用, 编译核心时必需让 IP Masquerading 起作用。
REDIRECT只对input链和user defined链起作用。它告诉核心把无论应送到何处的包改送到一个本地端口. 只有 TCP 和 UDP 协议可以使用此指定. 任意用 ‘-j REDIRECT’ 指定一个端口(名字或编号)可以使送往此的包被重定向到某个特殊的端口, 即使它被标记为送到其它端口。想让它起作用,编译内核时,必须让CONFIG_IP_TRANSPARENT_PROXY起作用。
最后的一个目标指定是 RETURN, 它跳过它下面的所有规则, 直到链的末尾。
任何其它的目标指定表示一个用户自定义的链。包将在那个链中通过. 假如那个链没有决定此包的命运, 那么在那个链中的传输就完成了,包将通过当前链的下一个规则。
7.2.2 ipchains实例:
##清除input规则的规则,并改变input默认的规则链策略为REJECT
-F input
-P input REJECT
##以下是允许input规则链的tcp端口为:80 81 22 123
-A input -s 0/0 -d 0/0 80 -p tcp -y -j ACCEPT
-A input -s 0/0 -d 0/0 81 -p tcp -y -j ACCEPT
-A input -s 0/0 -d 0/0 22 -p tcp -y -j ACCEPT
-A input -s 0/0 -d 0/0 123 -p udp -j ACCEPT
##设置除了以上允许的input规则链以为,拒绝0-1023、2049、6000-6009、7100的tcp和upd端口,
-A input -p tcp -s 0/0 -d 0/0 0:1023 -y -j REJECT
-A input -p tcp -s 0/0 -d 0/0 2049 -y -j REJECT
-A input -p udp -s 0/0 -d 0/0 0:1023 -j REJECT
-A input -p udp -s 0/0 -d 0/0 2049 -j REJECT
-A input -p tcp -s 0/0 -d 0/0 6000:6009 -y -j REJECT
-A input -p tcp -s 0/0 -d 0/0 7100 -y -j REJECT
##允许系本身统网卡上发生的所有包通过
-A input -s 0/0 -d 0/0 -i lo -j ACCEPT
-A input -s 0/0 -d 0/0 -i eth0 -j ACCEPT
-A input -s 0/0 -d 0/0 -i eth1 -j ACCEPT
##清除output规则的规则,并改变output默认的规则链策略为ACCEPT
-F output
-P output ACCEPT
##清除forward规则的规则,并改变forward默认的规则链策略为DENY,设置了forward规则链允许对10.10.11.0/24网段的包可以转发并且做伪装处理。
-F forward
-P forward DENY
-A forward -s 10.10.11.0/24 -j MASQ

linux命令手册Txt版[请复制到记事本保存]

1
文件管理
#
ls
ls -a
列出当前目录下的所有文件,包括以.头的隐含文件
文件管理
#
ls
ls -l或ll
列出当前目录下文件的详细信息
[url=http://www.xt-benet.meibu.com/admin_main.aspx][/url]
文件管理
#
pwd
pwd
查看当前所在目录的绝对路经
文件管理
#
cd
cd ..
回当前目录的上一级目录
文件管理
#
cd
cd –
回上一次所在的目录
文件管理
#
cd
cd ~ 或 cd
回当前用户的宿主目录
文件管理
#
cd
cd ~用户名
回指定用户的宿主目录
2
文件管理
#
mkdir
mkdir 目录名
创建一个目录
文件管理
#
mkdir
mkdir ?p
递归式去创建一些嵌套目录
文件管理
#
rmdir
Rmdir 空目录名
删除一个空目录
3
文件管理
#
rm
rm 文件名 文件名
删除一个文件或多个文件
文件管理
#
rm
rm -rf 非空目录名
递归删除一个非空目录下的一切,不让提式-f
4
文件管理
#
cat
cat文件名
一屏查看文件内容
5
文件管理
#
more
more文件名
分页查看文件内容
6
文件管理
#
less
less 文件名
可控分页查看文件内容
7
文件管理
#
grep
grep字符 文件名
根据字符匹配来查看文件部分内容
8
文件管理
#
mv
mv 路经/文件 /经/文件
移动相对路经下的文件到绝对路经下
文件管理
#
mv
mv 文件名 新名称
在当前目录下改名
Array
文件管理
#
cp
cp /路经/文件 ./
移动绝对路经下的文件到当前目录下
10
文件管理
#
find
find 路经 -name "字符串"
查找路经所在范围内满足字符串匹配的文件和目录
11
文件管理
#
ln
ln 源文件 链接名
创建当前目录源文件的硬链接
ln /home/test /usr/test1
在/usr下建立/home/test的硬链接
12
文件管理
#
ln
Ln -s a b
创建当前目录下a的符号链接b
13
文件管理
#
touch
touch file1 file2
创建两个空文件
14
磁盘管理
#
df
df
用于报告文件系统的总容量,使用量,剩余容量。
15
磁盘管理
#
du
du -b /home
查看目前/HOME目录的容量(k)及子目录的容量(k)。
16
磁盘管理
#
fdisk
fdisk -l
查看系统分区信息
17
磁盘管理
#
fdisk
fdisk /dev/sdb
为一块新的SCSI硬盘进行分区
18
磁盘管理
#
mkfs.ext3
Mkfs.ext3 /dev/sdb1
为第一块SCSI硬盘的第一主分区格式化成
ext3的文件系统
mkfs.ext2
Mkfs.ext2/dev/sdb2
格式化成ext2文件系统
1Array
磁盘管理
#
mount
mount -t 文件系统类型 设备路经 访问路经
磁盘管理
#
文件系统类型
IsoArray660
光驱文件系统
vfat
Fat文件系统(windows)
挂载光驱
#
mount ?t isoArray660 /dev/cdrom /mnt/cdrom
挂载FAT
#
mount ?t vfat /dev/hda5 /mnt/cdrom
挂第一个ide的第五个逻辑分区
17
磁盘管理
#
Umount /mnt/cdrom
卸载/mnt/cdrom为空
18
文件权限
#
chmod
chmod u+s file
为file的属主加上特殊权限
chmod g+r file
为file的属组加上读权限
chmod o+w file
为file的其它用户加上写权限
chmod a-x file
为file的所有用户减去执行权限
chmod 765 file 为file的属主设为完全权限,属组设成读写权,其它用户具有读和执心权限
1Array
文件权限
#
chown
chown root /home
把/home的属主改成root用户
20
文件权限
#
chgrp
chgrp root /home
把/home的属组改成root组
www Says:
八月 1st, 2006 at 10:04 am
🙂 ~
21
打印管理
#
redhat-config-printer-tui
进入安装打印机界面
22
打印管理
#
lp
lp ?d hptr file
打印file到hptr的打印机上
23
打印管理
#
lpq
Lpq ?P 打印机名
查看打印机的状态
24
打印管理
#
lprm
Lprm ?P 打印机名 a
删除打印机内的打印作业
25
打印管理
#
disable
Disable ?r "changing paper" HPtr
禁用打印机并提示原因
26
打印管理
#
enable
Enable HPtr
重新启用被禁用的
27
用户管理
#
useradd
Useradd
创建一个新的用户
28
用户管理
#
groupadd
Groupadd 组名
创建一个新的组
2Array
用户管理
#
passwd
Passwd 用户名
为用户创建密码
30
用户管理
#
Passwd -d
Passwd -d用户名
删除用户密码也能登陆
31
用户管理
#
Passwd -l
Passwd -l用户名
锁定账号密码
32
用户管理
#
Passwd -u
Passwd -u用户名
解锁账号密码
33
用户管理
#
Passwd -S
Passwd -S用户名
查询账号密码
34
用户管理
#
Usermod -l
Usermod -l 新用户名 老用户名
为用户改名
35
用户管理
#
Usermod -L
Usermod -L 要锁定用户名
锁定用户登陆
36
用户管理
#
Usermod -U
Usermod ?U解锁用户名
解锁用户登陆
37
用户管理
#
Usermod -u
Usermod ?u 501用户名
改变用户UID
38
用户管理
#
Userdel
Userdel?r 用户名
删除用户一切
3Array
用户管理
#
Groupmod -n
Groupmod ?n新用户名 老用户名
为组改名
40
用户管理
#
Groupmod -g
Groupmod ?g 501 组名
改变组GID
41
用户管理
#
groupdel
Groupdel组名 先应删它的用户
删除组
42
用户管理
#
gpasswd -a
gpasswd -a 用户名 组名
增加用户到组
43
用户管理
#
Id
id 用户名
查用户信息
44
软件管理
#
rpm -qa
rpm ?qa | less
查询已安装RPM
45
软件管理
#
rpm ?qa | grep ftp
查询指定RPM
46
软件管理
#
rpm -q
rpm -q 已安装的RPM包
查是否安装
47
软件管理
#
rpm -q telnet-server
查看telnet服务器包
48
软件管理
#
rpm -qi
rpm ?qi 软件包名称
查看软件的描述信息
4Array
软件管理
#
rpm -ql
rpm ?ql软件包名称
查询软件包的文件列表
50
软件管理
#
rpm -qf
rpm ?qf软件包名称
查询某个文件所属的软件包
51
软件管理
#
rpm -qp
rpm ?qp软件包全名
查询未安装的软件包信息
52
软件管理
#
rpm -e
rpm ?e 软件包名称
删除具体的软件包
53
软件管理
#
rpm -U
rpm ?Uvh软件包全名
升级软件包并显示过程
54
软件管理
#
rpm -ivh
rpm ?ivh 软件包全名
安装软件包并显示过程
55
软件管理
#
rpm -V
rpm ?V软件包名称
验证软件包的大小,类型等
56
软件管理
#
tar
-c 创建包 ?x 释放包 -v 显示命令过程 ?z 代表压缩包
57
软件管理
#
tar -cf
tar ?cvf benet.tar /home/benet
把/home/benet目录打包
58
软件管理
#
tar -czf
tar ?zcvf benet.tar.gz /mnt
把目录打包并压缩
5Array
软件管理
#
tar ?tf
tar ?tf benet.tar
看非压缩包的文件列表
60
软件管理
#
tar ?tzf
tar ?tf benet.tar.gz
看压缩包的文件列表
61
软件管理
#
tar ?xf
tar ?xf benet.tar
非压缩包的文件恢复
62
软件管理
#
tar ?zxvf
tar ?zxvf benet.tar.gz
压缩包的文件解压恢复
63
软件管理
#
tar -jxvf
tar ?jxvf benet.tar.bz2
64
软件管理
#
diff
diff file1 file2 > 补丁名.patch
为新旧文件生成补丁文件
65
软件管理
#
diff
diff file1 file2
比较两个文件的区别
66
软件管理
#
Patch
Patch file补丁名.patch
打补丁
67
软件管理
#
./configure ?prefix=/usr/local/
编译前配置
68
软件管理
#
make
编译
6Array
软件管理
#
make install
安装编译好的源码包

www Says:
八月 1st, 2006 at 10:10 am
🙂 ~~
70
启动管理
#
reboot
Init 6
重启LINUX系统
71
启动管理
#
Halt
Init 0
Shutdown ?h now
关闭LINUX系统
72
启动管理
#
runlevel
显示系统运行级
73
启动管理
#
Init [0123456]
改变系统运行级,7种
74
启动管理
#
Chkconfig ?-list [服务名称]
查看服务的状态
75
启动管理
#
Chkconfig ?-level on|off|set
设置服务的启动状态
76
启动管理
#
Chkconfig on|off|set
设置非独立服务启状态
77
进程管理
#
Top动态
Ps-aux静态
进程树pstree
查看系统进程
78
进程管理
#
程序名 &
后台运行程序
7Array
进程管理
#
fg
把后台运行的进程调回前台
80
进程管理
#
bg
把前台运行进程调到后台
81
进程管理
#
renice
Renice +1 180
把180号进程的优先级加1
82
进程管理
#
kill
Kill PID
终止某个PID进程
83
进程管理
#
at
at 5pm + 3 days
/bin/ls
指定三天后下午5:00执行/bin/ls
84
进程管理
#
crontab
Crontab -e
用VI的形式来编辑自动周期性任务
85
进程管理
#
crontab
Crontab -l
查看自动周期性任务
86
进程管理
#
crontab
Crontab -r
删除自动周期性任务
87
进程管理
#
crond
Service crond
马上启动自动周期性服务
Service crond
www Says:
八月 1st, 2006 at 10:13 am
:D 实现磁盘配额
(注安装LINUX时建立/home分区)
目标:对用户user在/home目录上实现soft limit为5k,hard limit 为10k的磁盘配额
实现步骤:
1. 修改包含/home的行, #vi /etc/fstab, 改为:defaults,usrquota。也就是增加usrquota项。然后保存退出。
2、卸载/home目录 #umount /home
3. 挂接/home目录 #mount /home
4、增加用户zhao #useradd zhao
5、修改密码 #passwd zhao
6、生成关于/home目录的quota信息 # quotacheck -cmug /home
#quotacheck -vu /home
7、查看所有用户的信息 #repquota -au
8、设置配额 #edquota -u zhao
将soft 和hard 分别改为5和10
Array、保存并退出 #wq!
10、修改时间 #edquota -t
11、 #wq!
12.开启/home上的磁盘配额功能 #quotaon /home
13.查询配额 #quota -u zhao
14.验证配额 #su – zhao

UNIX下的编辑器VI命令总结

文本编辑器是所有计算机系统中最常用的一种工具。UNIX下的编辑器有ex,sed和vi等,其中,使用最为广泛的是vi,而vi命令繁多,论坛里好像这方面的总结不多,以下稍做总结,以资共享!渴望更正和补充!
进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename….filename :打开多个文件,依次进行编辑
移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息
最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行
寄存器操作
“?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
“?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

CentOS 5.5开通Ftp和Telnet服务配置

在安装好CentOS以后,需要设置Ftp和Telnet服务文件,才能启动Ftp和Telnet服务,可以通过远程控制进行开启。
1.1、进入终端命令模式,用root用户登录;
1.2、开启ftp服务。

cd /etc/xinetd.d
#编辑ftp服务的配置文件gssftp:
vi gssftp
#将 修改两项内容:
server_args = -l –a # 去掉-a 改为server_args = -l
disable=yes #改为disable=no

1.3、开启telnet服务

cd /etc/xinetd.d
#察看telnet服务的配置文件krb5-telnet的设置:$ {! b7 r0 A8 d. z
#开启telnet服务设置
vi krb5-telnet
disable=yes # 改为disable=no,保存退出。

1.4、激活服务:
telnet /ftp 是挂在 xinetd 底下的,所以自然只要重新激活 xinetd 就能够将 xinetd 里头的设定重新读进来,所以刚刚设定的telnet /ftp自然也就可以被激活。
激活目录和命令:

cd /etc/rc.d/init.d/
service xinetd restart

有时会提示命令不存在,需要加上命令的路径

[root@localhost init.d]# service xinetd resart
bash: service: command not found
[root@localhost init.d]# /sbin/service xinetd restart

若提示xinetd: 未被识别的服务,则说明/etc/rc.d/init.d下无xinetd包

[root@localhost init.d]# yum -y install xinetd* #下载xinetd包
[root@localhost init.d]# service xinetd resart #重新启动FTP、Telnet服务

这样既可ftp登陆到服务器