sudo* ? j& E6 z$ b. \, l! C
1.作用
5 g. y- Q& C" E7 Y# L+ I& [0 u, g sudo是一种以限制配置文件中的命令为基础,在有限时间内给用户使用,并且记录到日志中的命令,权限是所有用户。, F n% {! }& `* L* x; R
2.格式
( x+ @0 F# Y7 k7 L( s q0 X4 Z2 \ sudo [-bhHpV] [-s ] [-u ] [指令]! e9 d1 z$ D2 o4 `# I! L
sudo [-klv]+ G+ P- d, R) w% x; P
3.主要参数
3 M& b) `0 ]0 D! D -b:在后台执行命令。( |& _+ g& E2 z
-h:显示帮助。
9 }# Q6 C) D8 R# w -H:将HOME环境变量设为新身份的HOME环境变量。
9 ?9 p4 }6 B# E1 z3 @: R; ~. g -k:结束密码的有效期,即下次将需要输入密码。, I- K) H& S4 k! B
-l:列出当前用户可以使用的命令。6 b0 G; Q3 z$ R# S& j
-p:改变询问密码的提示符号。6 e7 ~' m3 n9 v) G, \# L9 r
-s :执行指定的Shell。$ `9 j& F, O: V9 S
-u :以指定的用户为新身份,不使用时默认为root。! A) I% s# J+ v& g* Q" R
-v:延长密码有效期5分钟。
8 o1 L: A# L; A* Y+ F 4.说明
0 n! m1 x; Z/ V% _6 u9 N; y sudo 命令的配置在/etc/sudoers文件中。当用户使用sudo时,需要输入口令以验证使用者身份。随后的一段时间内可以使用定义好的命令,当使用配置文件中没有的命令时,将会有报警的记录。sudo是系统管理员用来允许某些用户以root身份运行部分/全部系统命令的程序。一个明显的用途是增强了站点的安全性,如果需要每天以超级用户的身份做一些日常工作,经常执行一些固定的几个只有超级用户身份才能执行的命令,那么用sudo是非常适合的。* `/ c* R. M- X& S% |1 Q1 o& V2 f( ^
ps
5 q4 _8 q: f# _) o2 n 1.作用2 o: W4 @2 X5 K3 B6 _' B
ps显示瞬间进程 (process) 的动态,使用权限是所有使用者。2 h1 `2 h" k' H" _: W
2.格式. P9 w6 C, R+ @. o# P/ K& M$ a
ps [options] [--help]! r- c) _4 c' x* W# G
3.主要参数
; \. I' P, W, Q. l ps的参数非常多, 此出仅列出几个常用的参数。: Q4 Q$ z) }- @# ^) K' R
-A:列出所有的进程。0 S2 j6 G& @ ~# P4 t# J' |1 y
-l:显示长列表。
( w* i, p2 f9 m. A0 e! l -m:显示内存信息。; }. K& F5 H0 d8 ~" J0 H- a8 w
-w:显示加宽可以显示较多的信息。) ~2 [' v: F8 X# d) r
-e:显示所有进程。6 [. w! i5 X. r) g/ _/ p2 V3 f# M
a:显示终端上的所有进程,包括其它用户的进程。1 J1 y! ]6 ~. X$ n' O
-au:显示较详细的信息。/ ~9 x9 h4 b$ ~ Y3 P! T4 ]1 ?- b
-aux:显示所有包含其它使用者的进程。. s4 z8 Q( l$ r! }
4.说明
* Z$ N7 Z3 E# @5 |" ^ 要对进程进行监测和控制,首先要了解当前进程的情况,也就是需要查看当前进程。ps命令就是最基本、也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行、运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等。图2给出了ps-aux命令详解。大部分信息都可以通过执行该命令得到。最常用的三个参数是u、a、x。下面就结合这三个参数详细说明ps命令的作用:ps aux. j4 O4 d6 \6 y, r
USER表示进程拥有者;PID表示进程标示符;%CPU表示占用的CPU使用率;%MEM占用的物理内存使用率;VSZ表示占用的虚拟内存大小;RSS为进程占用的物理内存值;TTY为终端的次要装置号码。
/ U; U4 |6 r5 a1 C) ?/ G! t STAT 表示进程的状态,其中D为不可中断的静止(I/O动作);R正在执行中;S静止状态;T暂停执行;Z不存在,但暂时无法消除;W没有足够的内存分页可分配;高优先序的进程;N低优先序的进程;L有内存分页分配并锁在内存体内 (实时系统或 I/O)。START为进程开始时间。TIME为执行的时间。COMMAND是所执行的指令。3 v: G) W/ G+ h. A9 l- c
4.应用实例: W; H3 |7 c7 q' r) y0 m, B: B
在进行系统维护时,经常会出现内存使用量惊人,而又不知道是哪一个进程占用了大量进程的情况。除了可以使用top命令查看内存使用情况之外,还可以使用下面的命令:0 p% x4 j3 H/ U$ F$ w, E3 K
ps aux | sort +5n
: G9 F0 g" F3 f, G4 {, i who( ` e# l! P2 d/ i5 a
1.作用
4 u2 F- D6 l+ i, H who显示系统中有哪些用户登陆系统,显示的资料包含了使用者ID、使用的登陆终端、上线时间、呆滞时间、CPU占用,以及做了些什么。使用权限为所有用户。
" n+ W0 S! d" @5 [, {, q8 ?, J 2.格式
; @( q) M% W7 u7 h' z, P who - [husfV] [user]4 n8 z5 P, y6 l4 w
3.主要参数; e/ d1 U! n0 ]; R' r- F
-h:不要显示标题列。7 d% D6 [) R- G, H2 e* j5 j7 P
-u:不要显示使用者的动作/工作。
- W2 l9 ~* E, A. j. x. e0 t3 l0 M -s:使用简短的格式来显示。
" _' V$ Z1 q# x0 x -f:不要显示使用者的上线位置。
$ ^+ F. K1 Q1 ~/ e/ x3 K& C; E5 ^/ A -V:显示程序版本。( |% y( X! Q' L/ ~$ _9 E% t% z) A+ K
4.说明) i3 ]6 v+ L3 l; e. p0 z
该命令主要用于查看当前在线上的用户情况。如果用户想和其它用户建立即时通信,比如使用talk命令,那么首先要确定的就是该用户确实在线上,不然 talk进程就无法建立起来。又如,系统管理员希望监视每个登录的用户此时此刻的所作所为,也要使用who命令。who命令应用起来非常简单,可以比较准确地掌握用户的情况,所以使用非常广泛。
, k* w9 t5 U P, s3 \+ ]& G; m3 S 动手练习- N( C: l2 Y! b0 J) y H+ j
1.使用Linux命令检测系统入侵者
# t# A) }+ p% }7 d4 W' S q2 e 安装过Mandrake Linux和Red Hat Linux的用户都会知道,Linux系统会内置三种不同级别(标准、高、更高)的防火墙,当进行了Linux服务器的安装和一些基本的设置后,服务器应该说是比较安全的,但是也会有黑客通过各种方法利用系统管理员的疏忽侵入系统。如何快速查找黑客非常重要。一般来说,可以使用命令查询黑客是否入侵,见表 1。
' S _' j' H& e, y! j: _ 表1 查询黑客入侵现象的命令对应表% t# e% j# k' {8 _
举例说明,如果黑客嗅探网络,那么它必须使网卡接口处于混杂模式,使用下面命令进行查询:
4 ~% r1 A& K( D1 E% D #ifconfig -a
% R( L9 z5 [) Q C5 \) U/ y) I+ s eth0 Link encap:Ethernet HWaddr 00:00:E8:A0:25:86/ A q/ j D& R, D5 B- E! I& f
inet addr:192.168.1.7 Bcast:192.168.1.255 Mask:255.255.255.0
3 O5 d* K# I' n3 ` UP BROADCAST RUNNING PROMISCUOUS MTU:1500 Metric:1
4 d% o- |- ]: T2 \$ Y ......, G: n7 G0 m( r; M2 Z& l7 f% A
从这个命令的输出中,可以看到上面讲到的这些概念。第一行的00:00:E8:A0:25:86是mac地址,第二行的192.168.1.7是IP地址,第四行讲的是接收数据状态,这时正在被黑客嗅探。一般而言,网卡有几种接收数据帧的状态,如Broadcast、Multicast、 Promiscuous等。Broadcast是指接收所有类型为广播报文的数据帧;Multicast是指接收特定的组播报文;Promiscuous 则是通常说的混杂模式,是指对报文中的目的硬件地址不加任何检查、全部接收的工作模式。
$ i0 Y/ c, _: |" h* O+ i 2.限制su命令的滥用0 |. G0 S/ G& I M# E
我们知道,超级用户在Linux中有最大的权利,几乎所有黑客都想得到这个目标。Linux可以增加对切换到超级用户的限制。使用PAM (Pluggable Authentication Modules)可以禁止除在wheel组以外的任何人su成root,修改/etc/pam.d/su文件,除去屏蔽标识#。使用 /usr/sbin/usermod G10 bjecadm将bjecadm这个账号加入gid为10的组,就是wheel组。命令如下:
& ~& z( g3 Q* w! H+ e& X6 w. J /etc/pam.d/su # 使用密码验证#
' q8 N( l. T0 Y( Q1 p+ n auth sufficient /lib/security/pam_wheel.so debug
& S1 H# _2 N* _ }& M; y9 ~1 r # 限制只有wheel组用户才可以切换到root#4 a. Z4 O. M/ t& | r5 s+ d# u
auth required /lib/security/pam_wheel.so use_uid) O7 {2 j( @* v
chmod -G10 bjecadm6 t$ ^1 P7 D, N! D
另外,每当用户试图使用su命令进入系统用户时,命令将在/usr/adm/sulog文件中写一条信息,若该文件记录了大量试图用su进入root的无效操作信息,则表明了可能有人企图破译root口令。
1 h5 @! r# _2 O- H( P Linux命令有着强大的功能。对于Linux系统管理员来说,往往只需要通过各种安全命令技巧,组合构成安全防线。从计算机安全的角度看,世界上没有绝对安全的计算机系统,Linux系统也不例外。 |