bĤڭ̻{ѤFLinuxtΤUɮvHΥؿtmC boӳ`Aڭ̴NӶi@Bާ@PzɮPؿaI]AbPؿܴB إPRؿBإPRɮסA٦MɮסBd\ɮפeA |boӳ`@²檺аڡI |
ѲĤLinuxɮvPؿtmzLFHSAѤFLinuxy𪬥ؿzA
UӴNonڪӷdw@ǰ|DFIoǥؿDA̭nLĤ]Ly|zPy۹|zNqաI
/۹|gkäۦPAnSO`NC~ApUFOɡAӫOOzL\ӨoH
oPPATHoܼƦOIUNڭ̨ӽͽoI
b}lؿeAAnAѤ@Uҿתy|(PATH)zA 쪺OGOy۹|zPy|zH Me@wgyLwoijDL@ALAo̤ЪAjդ@UI
۹|P|F_rHܡIiuOF_FI]AgF@ӳnA oӳn@ݭnTӥؿAOO etc, bin, man oTӥؿAMӥѩPHww˦bPؿUA ]Ҧw˪ؿO /usr/local/packages/etc, /usr/local/packages/bin /usr/local/packages/man ALAoww˦b /home/packages/etc, /home/packages/bin, /home/packages/man oTӥؿAаݦpGݭnΨ쵴|ܡAO_ܳ·ЩOHOI p@ӨCӥؿUFN_ӡIoӮɭԬ۹|gkN㪺SOnFI
~ApGA@ˡAwN|WrgܪAnۤvDӥؿObFAҦpG
/cluster/raid/output/taiwan2006/smoke oӥؿAӥt@ӥؿb
/cluster/raid/output/taiwan2006/cctm AڱqĤ@ӭnĤGӥؿhܡAgKH
MOy cd ../cctm zKoIaI
OɦWTʨӻAy|TnnzC @ӻA|ijAApGObg{ (shell scripts) ӺztΪUAȥϥε|gkC OH]|gkM·СAOiH֩woӼgk藍|DC pGϥά۹|b{AhiѩA檺u@ҤPAɭP@ǰDo͡C oӰDbu@Ƶ{(at, cron, ĤQ)ר䭫nIoӲ{Hڭ̦bQTBshell scriptɡA|AAI ^_^
ڭ̤eyLܴؿOOcdA٦ǥiHiؿާ@OOH ҦpإߥؿڡBRؿ٦AonDANOǤSؿOH |ҨӻAUoǴNOSؿAonΤOOUӤ~G
. Nhؿ
.. NW@hؿ
- Ne@Ӥu@ؿ
~ NyثeϥΪ̨zҦbaؿ
~account N account oӨϥΪ̪aؿ(accountOӱbW)
|
ݭnSO`NOGbҦؿU|sbӥؿAOOy.zPy..z ONhPWhؿNCӫҤ@UUoӨDG
DG
аݦbLinuxUAڥؿUSWhؿ(..)sbH
G
YϥΡy ls -al / zhdߡAiHݨڥؿUTsb . P .. ӥؿAAJӪd\A
io{oӥؿݩʻPv@PAoNڥؿW@h(..)Pڥؿۤv(.)OP@ӥؿC
|
Uڭ̴Nӽͤ@ʹXӱ`BzؿOaG
ڭ̪DvbirdoӨϥΪ̪aؿO/home/vbird/ArootaؿhO/root/A]ڥHrootb LinuxtΤA²檺@UoXӯSؿNqOG
[root@www ~]# cd [۹|ε|] # ̭nNOؿ|P۹|A٦@ǯSؿŸoI [root@www ~]# cd ~vbird # Nh vbird oӨϥΪ̪aؿAY /home/vbird [root@www vbird]# cd ~ # ܦ^ۤvaؿAYO /root oӥؿ [root@www ~]# cd # S[W|A]٬ON^ۤvaؿNI [root@www ~]# cd .. # ܥhثeWhؿAYO /root WhؿNF [root@www /]# cd - # ܦ^𫍧ӥؿA]NO /root o [root@www ~]# cd /var/spool/mail # oӴNO|gkIwnh|W١I [root@www mail]# cd ../mqueue # oӬO۹|gkAڭ̥/var/spool/mail h/var/spool/mqueue No˼gI |
cdOChange DirectoryYgAoOΨܴu@ؿOC`NAؿWٻPcdOsb@ӪŮC @nJLinuxtΫAroot|brootaؿI^W@hؿiHΡy cd .. zC Qά۹|gknT{Aثe|~ॿThQnhؿCҦpW̫@ӨҤlA AnT{AOb/var/spool/mailAåBDb/var/spoolmqueueؿ~ڡ oˤ~ϥcd ../mqueueh쥿TؿA_hNnJcd /var/spool/mqueueo
Aڭ̪ܦrAY [root@www ~]# ANwgXثeؿFA nJɷ|ۤvaؿAӮaؿ٦@ӥNXANOy ~ zŸI ҦpWҤliHo{AϥΡy cd ~ ziH^ӤHaؿYhOI t~Aw cd ϥΤkApGȿJ cd ɡANNOy cd ~ zN YO|^ۤvaؿաIӨӡy cd - zHzѡAЦۦhXmߡA N|դFC
٬On@AaAڭ̪ Linux w]OCҦ (bash shell) 㦳ɮɻ\A An``Q [tab] ӹFAؿʰڡIoiOӦnߺDڡ iHקKALJr ^_^[root@www ~]# pwd [-P] ﶵPѼơG -P GܥXTꪺ|AӫDϥγs (link) |C dҡGܥXثeu@ؿG [root@www ~]# pwd /root <== ܥXؿա dҡGܥXڪu@ؿAӫDsɥؿWӤw [root@www ~]# cd /var/mail <==`NA/var/mailO@ӳs [root@www mail]# pwd /var/mail <==CXثeu@ؿ [root@www mail]# pwd -P /var/spool/mail <==^ơHS[ -P tܦh [root@www mail]# ls -ld /var/mail lrwxrwxrwx 1 root root 10 Sep 4 17:54 /var/mail -> spool/mail # ݨoӪDԣFaH] /var/mail OsɡAs /var/spool/mail # ҥHA[W pwd -P ﶵA|HsɪܡAӬOܥT|ڡI |
pwdOPrint Working DirectoryYgA]NOܥثeҦbؿOA ҦpbWӪ̫᪺ؿO/var/mailoӥؿAOܦrmailA pGAQnDثeҦbؿAiHJpwdYiC~AѩܦhMҨϥΪؿWٳۦPAҦp /usr/local/etc٦/etcAOq`LinuxȦCX̫᭱@ӥؿӤwAoӮɭԧANiHϥpwd ӪDAҦbؿoIKodؿAG...
꦳쪺O -P ﶵաILiHڭ̨oTؿW١AӤOHsɪ|ܪC
pGAϥΪOCentOS 5.xܡAn/var/mailO/var/spool/mailsɡA
ҥHAzL/var/mailUFpwd -PNDoӿﶵNqo ^_^
[root@www ~]# mkdir [-mp] ؿW ﶵPѼơG -m G]wɮתvI]wAݭnݹw]v (umask) y -p GUANһݭnؿ(]tWhؿ)jإ߰_ӡI dҡGШ/tmpUիإƭӷsؿݬݡG [root@www ~]# cd /tmp [root@www tmp]# mkdir test <==إߤ@W test sؿ [root@www tmp]# mkdir test1/test2/test3/test4 mkdir: cannot create directory `test1/test2/test3/test4': No such file or directory <== SkإߦؿڡI [root@www tmp]# mkdir -p test1/test2/test3/test4 # [Fo -p ﶵAiHۦAإߦhhؿI dҡGإvrwx--x--xؿ [root@www tmp]# mkdir -m 711 test2 [root@www tmp]# ls -l drwxr-xr-x 3 root root 4096 Jul 18 12:50 test drwxr-xr-x 3 root root 4096 Jul 18 12:53 test1 drwx--x--x 2 root root 4096 Jul 18 12:54 test2 # JӬݤWvApGS[W -m ӱj]wݩʡAtη|ϥιw]ݩʡC # Aw]ݩʬHonzLUЪ umask ~AѳI ^_^ |
pGQnإ߷sؿܡANϥmkdir (make directory)aI LAbw]pUA Aһݭnؿo@h@hإߤ~IҦpGpAnإߤ@ӥؿ /home/bird/testing/test1An /home M /home/bird AA /home/bird/testing nsbA~iHإ /home/bird/testing/test1 oӥؿIpS /home/bird/testing ɡANSkإ test1 ؿoI
LA{bӧ²榳ĪkաINO[W -p oӿﶵIAiHUFGy mkdir -p /home/bird/testing/test1 z htη|۰ʪAN /home, /home/bird, /home/bird/testing ̧Ǫإ߰_ؿIåBA pGӥؿӴNwgsbɡAtΤ]|ܿ~TIּ֪aI ^_^C Lij`-poӿﶵA]ߦpGprAؿWٴN|ܪäCKVI
t~AӦaAnANOyw]vzaCڭ̥iHQ -m ӱj@ӷsؿvA
ҦpWAڭ̵ -m 711 ӵsؿ drwx--x--x vCLApGS -m ﶵɡA
w]sإؿvSOOHoӸ umask Aڭ̦bY|[HЪC
[root@www ~]# rmdir [-p] ؿW ﶵPѼơG -p GsPWhyŪzؿ]@_R dҡGNmkdirdҤإߪؿ(/tmpU)RI [root@www tmp]# ls -l <==ݬݦh֥ؿsbH drwxr-xr-x 3 root root 4096 Jul 18 12:50 test drwxr-xr-x 3 root root 4096 Jul 18 12:53 test1 drwx--x--x 2 root root 4096 Jul 18 12:54 test2 [root@www tmp]# rmdir test <==iRASD [root@www tmp]# rmdir test1 <==]|eAҥHLkRI rmdir: `test1': Directory not empty [root@www tmp]# rmdir -p test1/test2/test3/test4 [root@www tmp]# ls -l <==zݬݡAUXtestPtest1FI drwx--x--x 2 root root 4096 Jul 18 12:54 test2 # @IQ -p oӿﶵAߨNiHN test1/test2/test3/test4 @R # Ln`NOAo rmdir ȯyRŪؿzI |
pGQnR¦ؿɡANϥrmdiraIҦpNإߪtestAϥΡy rmdir test zYiIЪ`NIؿݭn@h@hR~IӥBQRؿ̭wsbLؿɮסI o]OҿתŪؿ(empty directory)NڡIpGnNҦؿUF卖OHI oӮɭԴNϥΡy rm -r test zoILA٬Oϥ rmdir MIIA]iHեH -p ﶵ[JAӧRWhؿI
gLĤFHSAڭ̪Dd\ɮݩʪOlsɦWG/bin/ls(oO|)A A||ıoܩ_ǡGyڥiHba/bin/lsoӫOOH z ڦbؿUJ ls N@wiHܥX@ǰTӤ|䤣 /bin/ls OOH oO]ܼ PATH UҭPrI
ڭ̦b@ӫOɭԡA|ҨӻylsznFAtη|̷PATH]whCPATHwqؿUjMɦWlsiɡA pGbPATHwqؿthɦWlsiɡAjM쪺PWOQI
{bAФUFyecho $PATHzӬݬݨ쩳ǥؿQwqXӤFH echoyܡBLXzNA PATH e[ $ ܫ᭱OܼơAҥH|ܥXثe PATH I
dҡGrootCXjM|H [root@www ~]# echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin :/bin:/usr/sbin:/usr/bin:/root/bin <==oOP@I dҡGvbirdCXjM|H [root@www ~]# su - vbird [vbird@www ~]# echo $PATH /usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/vbird/bin # JӬݡA@ΤvbirdPATHAä]tysbinzؿsbI |
PATH(@wOjg)oܼƪeOѤ@ؿҲզACӥؿΫ_(:)ӹj}A CӥؿOyǡzCJӬݤ@UWXApiHo{LOroot٬Ovbird/bin oӥؿbPATHܼƤAҥHMNbalsӧ/bin/lsoI
ڭ̥δXӽdҨAAѤ@UAPATHOnءI
DG
аݧAणϥΤ@먭ϥΪ̤UFifconfig eth0oӫOOH
G
pWdҩҥܡAAϥvbirdoӱbifconfigɡA|X{y-bash: ifconfig: command not foundzrˡA
]ifconfigOm/sbinUAӥѤWGڭ̥iHo{vbirdPATHèS]m/sbinA
ҥHw]LkC
OAiHϥΡy/sbin/ifconfig eth0zӰoӫOI]@Τ٬OiHϥifconfigӬdߨtIPѼơA JMPATHSWd/sbinAڭ̨ϥΡy|z]iHӫOI |
DG
]AOrootApGANls/bin/lsʦ/root/ls(iΡymv /bin/ls /rootzOF)AMAۤv]b/rootؿUA
а(1)AणઽJlsӰH(2)YAAӦplsoӫOH(3)YnJlsYiASӦpiH
G
ѩoӨDIONYӰɲʨDWؿhAҥHڭ̥ni橳Uʧ@~G(ȥϥroot)
(2)]olsTsb/rootUAäOQRFIҥHڭ̥iHzLϥε|Ϊ̬O۹|woӰɦWA UӤklsoӫOG
|
DG
pGڦlsObPؿAҦp/usr/local/bin/lsP/bin/lsڤUF ls ɭԡAls|QH
G
٥λANX PATH ̭ӥؿQdߡAhӥؿUON|QFI
|
DG
PATHjMؿ[Jؿ(.)H[JؿjMO]H
G
pGbPATH[Jؿ(.)ATڭ̴NbOҦbؿiOFC
OѩAu@ؿëDTw(``|ϥcdӤ줣Pؿ)A
]檺O|ܰ(]CӥؿUiɳۦPI)AoϥΪ̨ӻëDnơC
t~ApGaߨϥΪ̦b/tmpUF@ӫOA]/tmpOjagJҡAҥHLMiHo˰C ]ӫOi|ѨϥΪ̪@ǸơApGAϥrootӰoӫOAOV|H pGoӫOW٤SOg`|QΨ쪺lsɡAyСzvNFI ҥHAFw_AijNy.z[JPATHjMؿC |
ӥѤWXӨDڭ̤]iHDXƱG
PATHԲӪyܼơzAڭ̷|bĤTgbash shellԲӻI
ͤFͥؿP|AAӰQפ@Uɮת@ǰzaIɮPؿzWA~GyݩʡzB
yzByRɮסzΡyɮשΥؿzAѩɮPؿzb Linux OܭnA
רOCӤHۤvaؿƤ]ݭn`NzIҥHڭ̨ӽͤ@ͦɮPؿ@ǰ¦zaI
[root@www ~]# ls [-aAdfFhilnrRSt] ؿW [root@www ~]# ls [--color={never,auto,always}] ؿW [root@www ~]# ls [--full-time] ؿW ﶵPѼơG -a GɮסAsP( }Y . ɮ) @_CX(`) -A GɮסAsPɡA]A . P .. oӥؿ -d GȦCXؿAӤOCXؿɮ(`) -f GCXGAӤiƧ (ls w]|HɦWƧǡI) -F GھɮסBؿTA[ƵcAҦpG *:NiɡF /:NؿF =:N socket ɮסF |:N FIFO ɮסF -h GNɮeqHHŪ觋(Ҧp GB, KB )CXӡF -i GCX inode XAinode NqU@N|СF -l GƦCXA]tɮתݩʻPvơF(`) -n GCX UID P GID ӫDϥΪ̻PsժW (UIDPGID|bbzI) -r GNƧǵGϦVXAҦpG쥻ɦWѤpjAϦVhѤjpF -R GsPlؿe@_CXӡAӥؿUҦɮ׳|ܥXӡF -S GHɮeqjpƧǡAӤOɦWƧǡF -t G̮ɶƧǡAӤOɦWC --color=never Gn̾ɮׯSʵCܡF --color=always GC --color=auto GtΦۦ̾ڳ]wӧP_O_C --full-time GHɶҦ (]t~BBBɡB) X --time={atime,ctime} GX access ɶΧvݩʮɶ (ctime) ӫDeܧɶ (modification time) |
bLinuxtηAo ls OiO̱`Q檺aI]ڭHɳnDɮשΪ̬OؿTڡ LAڭLinuxɮשҰOTbOӦhFAls SݭnCXөO ҥHAAuUF ls ɡAw]ܪuGDɪɦWB HɦWiƧǤɦWNCpӤwC|ҨӻA AUFy ls /etc zAugLƧǪɦWHΥHŦܥؿΥզܤ@ɮסApӤwC
pGٷQn[JLܸTɡAiH[JWY쪺ǦΪﶵO |ҨӻAڭ̤e@Ψ쪺 -l oӪܸƤeAHαNɤ]@_CܥXӪ -a ﶵC UhO@DZ`ΪdҡAڸհݬݡG
dҤ@GNaؿUҦɮצCX(tݩʻP) [root@www ~]# ls -al ~ total 156 drwxr-x--- 4 root root 4096 Sep 24 00:07 . drwxr-xr-x 23 root root 4096 Sep 22 12:09 .. -rw------- 1 root root 1474 Sep 4 18:27 anaconda-ks.cfg -rw------- 1 root root 955 Sep 24 00:08 .bash_history -rw-r--r-- 1 root root 24 Jan 6 2007 .bash_logout -rw-r--r-- 1 root root 191 Jan 6 2007 .bash_profile -rw-r--r-- 1 root root 176 Jan 6 2007 .bashrc drwx------ 3 root root 4096 Sep 5 10:37 .gconf -rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log -rw-r--r-- 1 root root 5661 Sep 4 18:25 install.log.syslog # oӮɭԧA|ݨH . }YXɮסAHΥؿ (.) (..) .gconf A # LAؿɦWOH`ŦܡAIeݲMNOFC dҤGGӤWDACAbɦWܥXɦWN(type) [root@www ~]# ls -alF --color=never ~ total 156 drwxr-x--- 4 root root 4096 Sep 24 00:07 ./ drwxr-xr-x 23 root root 4096 Sep 22 12:09 ../ -rw------- 1 root root 1474 Sep 4 18:27 anaconda-ks.cfg -rw------- 1 root root 955 Sep 24 00:08 .bash_history -rw-r--r-- 1 root root 24 Jan 6 2007 .bash_logout -rw-r--r-- 1 root root 191 Jan 6 2007 .bash_profile -rw-r--r-- 1 root root 176 Jan 6 2007 .bashrc drwx------ 3 root root 4096 Sep 5 10:37 .gconf/ -rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log -rw-r--r-- 1 root root 5661 Sep 4 18:25 install.log.syslog # `NݨܵGĤ@AKK㪾Dڭ̷|UF ./command # OFaH] ./ NOyثeؿUzNڡIܩO FIFO/Socket H # аѦҫe@`аڡIt~A.bashrc ɶȼg2007A_DԲӮɶH dҤTG㪺e{ɮתקɶ *(modification time) [root@www ~]# ls -al --full-time ~ total 156 drwxr-x--- 4 root root 4096 2008-09-24 00:07:00.000000 +0800 . drwxr-xr-x 23 root root 4096 2008-09-22 12:09:32.000000 +0800 .. -rw------- 1 root root 1474 2008-09-04 18:27:10.000000 +0800 anaconda-ks.cfg -rw------- 1 root root 955 2008-09-24 00:08:14.000000 +0800 .bash_history -rw-r--r-- 1 root root 24 2007-01-06 17:05:04.000000 +0800 .bash_logout -rw-r--r-- 1 root root 191 2007-01-06 17:05:04.000000 +0800 .bash_profile -rw-r--r-- 1 root root 176 2007-01-06 17:05:04.000000 +0800 .bashrc drwx------ 3 root root 4096 2008-09-05 10:37:49.000000 +0800 .gconf -rw-r--r-- 1 root root 42304 2008-09-04 18:26:57.000000 +0800 install.log -rw-r--r-- 1 root root 5661 2008-09-04 18:25:55.000000 +0800 install.log.syslog # ХJӬݡAWyɶzܤFIܦ㪺榡C # @ӻA ls -al ȦCXثeu榡ɶAɤ|CX~A # ǥ --full-time iHd\Tɶ榡ڡI |
ls Ϊk٦ܦhA]Ad\ɮשҦb i-node X ls -i ﶵAHΥΨӶiɮױƧǪ -S ﶵA٦ΨӬd\Pɶʧ@ --time=atime ﶵ(hɶаѦҥ᭱touch)CӳoǿﶵsbO] Linux ɮרtΰOFܦhΪTtGC Linux ɮרtΤAoǻPvBݩʦƩb̩OH b i-node ̭CoAڭ̷|bU@~A@`JаڡI
LצpA ls ̱`QϥΨ쪺\٬O -l ﶵAAܦh distribution bw]pA wgN ll (L pg) ]w ls -l NFIAӥ\O Bash shell alias \O]NOAڭ̪J ll NOJ ls -l O@˪oAڭ̷|b bash shell ɦAjպw
nƻsɮסAШϥ cp (copy) oӫOYi㤣LA cp oӫOγ~ihF
Fªƻs~A٥iHإ߳s (NO|o)Aɮתs¦ӤHsA
Hνƻsӥؿ\OIܩʥؿPɮסAhϥ mv (move)A
oӫO]iHӧ@W (rename) ʧ@IܩܡHNO rm (remove)
oӫOo㧐Uڭ̴N@@@
[root@www ~]# cp [-adfilprsu] ӷ(source) ؼ(destination) [root@www ~]# cp [options] source1 source2 source3 .... directory ﶵPѼơG -a G۷ -pdr NAܩ pdr аѦҤUCF(`) -d GYӷɬsɪݩ(link file)AhƻssݩʦӫDɮץF -f Gj(force)NAYؼɮפwgsbBLk}ҡAhAդ@F -i GYؼ(destination)wgsbɡAbл\ɷ|߰ݰʧ@i(`) -l Giws(hard link)sɫإߡAӫDƻsɮץF -p GsPɮתݩʤ@_ƻsLhAӫDϥιw]ݩ(ƥ`)F -r GjƻsAΩؿƻs欰F(`) -s GƻsŸs (symbolic link)AYy|zɮסF -u GY destination source ¤~s destination I ̫ݭn`NApGӷɦӥHWAh̫@ӥتɤ@wnOyؿz~I |
ƻs(cp)oӫOOD`nAP̰oӫO|PG͡AרO-a, -pﶵA PӻAthD`jIUmߤAroot@b(bڳo̥vbirdoӱb)A m߮ɽЯSO`NtOInI}lӰƻsmP[G
dҤ@GrootANaؿU .bashrc ƻs /tmp UAçW bashrc [root@www ~]# cp ~/.bashrc /tmp/bashrc [root@www ~]# cp -i ~/.bashrc /tmp/bashrc cp: overwrite `/tmp/bashrc'? n <==nл\Ayл\ # Ƨ@⦸ʧ@Aѩ /tmp Uwgsb bashrc FA[W -i ﶵA # hbл\e|߰ݨϥΪ̬O_TwIiHU n Ϊ y ӤGT{OI dҤGGܴؿ/tmpAñN/var/log/wtmpƻs/tmpB[ݩʡG [root@www ~]# cd /tmp [root@www tmp]# cp /var/log/wtmp . <==QnƻsثeؿA̫᪺ . n [root@www tmp]# ls -l /var/log/wtmp wtmp -rw-rw-r-- 1 root utmp 96384 Sep 24 11:54 /var/log/wtmp -rw-r--r-- 1 root root 96384 Sep 24 14:06 wtmp # `NWSrAb[ﶵpUAɮתYݩ/v|ܡF # oOӫܭnSʡIn`NI٦Asɮإߪɶ]@ˤFI # pGAQnNɮתҦSʳ@_ƻsLӸӫHiH[W -a IpUҥܡG [root@www tmp]# cp -a /var/log/wtmp wtmp_2 [root@www tmp]# ls -l /var/log/wtmp wtmp_2 -rw-rw-r-- 1 root utmp 96384 Sep 24 11:54 /var/log/wtmp -rw-rw-r-- 1 root utmp 96384 Sep 24 11:54 wtmp_2 # AFaIӸƯSʧ@Ҥ@ˣIuOoNO -a SʡI |
o cp \ܦhAѩڭ̱``|i@ǸƪƻsAҥH]|``ΨoӫOC @ӻAڭ̦pGhƻsOH (MAɮקAn read v~ڡI ^_^) ɡA `OƱƻs쪺Ƴ̫Oڭ̦ۤvAҥHAbw]A cp ӷɻPتɪvOPAتɪ֦̳q`|OOާ@̥C|ҨӻA WdҤGAѩڬO root A]ƻsLӪɮ֦̻PsմNܦ root ҦFI o˻AiHնܡH^_^
ѩ㦳oӯSʡA]ڭ̦biƥɭԡAYǻݭnSO`NSvɮסA ҦpKX (/etc/shadow) HΤ@dz]wɡANઽH cp ӽƻsAӥn[W -a Ϊ̬O -p iHƻsɮvﶵ~It~ApGAQnƻsɮLϥΪ̡A ]n`Nɮתv(]tŪBgBHɮ̵֦)A _hALH٬OLkwAɮiqʧ@I`N`NI
dҤTGƻs /etc/ oӥؿUҦe /tmp U [root@www tmp]# cp /etc/ /tmp cp: omitting directory `/etc' <== pGOؿhઽƻsAn[W -r ﶵ [root@www tmp]# cp -r /etc/ /tmp # ٬OnAjճI -r OiHƻsؿAOAɮPؿvi|Q # ҥHA]iHQΡy cp -a /etc /tmp zӤUFOIרObƥpUI dҥ|GNdҤ@ƻs bashrc إߤ@ӳs (symbolic link) [root@www tmp]# ls -l bashrc -rw-r--r-- 1 root root 176 Sep 24 14:02 bashrc <==[@Uɮױp [root@www tmp]# cp -s bashrc bashrc_slink [root@www tmp]# cp -l bashrc bashrc_hlink [root@www tmp]# ls -l bashrc* -rw-r--r-- 2 root root 176 Sep 24 14:02 bashrc <==PlɮפӤ@ˤFI -rw-r--r-- 2 root root 176 Sep 24 14:02 bashrc_hlink lrwxrwxrwx 1 root root 6 Sep 24 14:20 bashrc_slink -> bashrc |
dҥ|iFIϥ -l -s |إߩҿתs(link file)AOoسsɫo@˪pCoO@^ưڡH -l NOҿתs(hard link)Aܩ -s hOŸs(symbolic link)A ²ӻAbashrc_slink O@ӡy|zAoӱ||sbashrchIҥHA|ݨɦWk|ӫV(->)ŸI
ܩbashrc_hlinkɮPbashrcݩʻPv@Ҥ@ˡAP|isethOĤG檺linkƥ1ܦ2FI o̥йsA]sA i-node ѡAڭ̤U@ͨɮרt(filesystem)ɦAӰQ׳oӰDC
dҤGY ~/.bashrc /tmp/bashrc s~ƻsL [root@www tmp]# cp -u ~/.bashrc /tmp/bashrc # o -u SʡAObؼɮPӷɮצtɡA~|ƻsC # ҥHA`QΩyƥzu@I ^_^ dҤGNdҥ|y bashrc_slink ƻs bashrc_slink_1 Pbashrc_slink_2 [root@www tmp]# cp bashrc_slink bashrc_slink_1 [root@www tmp]# cp -d bashrc_slink bashrc_slink_2 [root@www tmp]# ls -l bashrc bashrc_slink* -rw-r--r-- 2 root root 176 Sep 24 14:02 bashrc lrwxrwxrwx 1 root root 6 Sep 24 14:20 bashrc_slink -> bashrc -rw-r--r-- 1 root root 176 Sep 24 14:32 bashrc_slink_1 <==PlɮۦP lrwxrwxrwx 1 root root 6 Sep 24 14:33 bashrc_slink_2 -> bashrc <==OsɡI # oӨҤl]OܦI쥻ƻsOsɡAOoNsɪɮƻsLӤF # ]NOApGS[WﶵɡAcpƻsOlɮסAӫDsɪݩʡI # YnƻssɪݩʡANonϥ -d ﶵFIp bashrc_slink_2 ҥܡC dҤCGNaؿ .bashrc .bash_history ƻs /tmp U [root@www tmp]# cp ~/.bashrc ~/.bash_history /tmp # iHNhӸƤ@ƻsP@ӥؿhI̫᭱@wOؿI |
DG
A_ϥvbirdA㪺ƻs/var/log/wtmpɮר/tmpUAçWvbird_wtmpOH
G
ڰݬݪGpUG
|
`Aѩ cp غتɮݩʻPvSʡAҥHAbƻsɡAAnMAѨG
[root@www ~]# rm [-fir] ɮשΥؿ ﶵPѼơG -f GNO force NAsbɮסA|X{ĵiTF -i GʼҦAbRe|߰ݨϥΪ̬O_ʧ@ -r GjRڡI̱`ΦbؿRFIoOD`MIﶵIII dҤ@GNb cp dҤإߪ bashrc RI [root@www ~]# cd /tmp [root@www tmp]# rm -i bashrc rm: remove regular file `bashrc'? y # pG[W -i ﶵN|Dʸ߰ݳAקKAR~ɦWI dҤGGzLUΦr*AN/tmpU}YbashrcɦWqqRG [root@www tmp]# rm -i bashrc* # `NӬPANO 0 LahӥNrIܦnΪFI dҤTGN cp dҤҫإߪ /tmp/etc/ oӥؿRI [root@www tmp]# rmdir /tmp/etc rmdir: etc: Directory not empty <== RڡI]oOŪؿI [root@www tmp]# rm -r /tmp/etc rm: descend into directory `/tmp/etc'? y ....(ٲ).... # ]O root Aw]wg[JF -i ﶵAҥHAn@ y ~|RI # pGQn~ y AiHUy [ctrl]-c zӵ rm u@C # oO@ثO@ʧ@ApGTwnRؿӤn߰ݡAiHo˰G [root@www tmp]# \rm -r /tmp/etc # bOe[WϱuAiH alias wﶵIܩ alias ڭ̦bbashA͡I dҥ|GR@ӱa - }Yɮ [root@www tmp]# touch ./-aaa- <==touchoӫOiHإߪɮסI [root@www tmp]# ls -l -rw-r--r-- 1 root root 0 Sep 24 15:03 -aaa- <==ɮפjp0AҥHOɮ [root@www tmp]# rm -aaa- Try `rm --help' for more information. <== ] "-" OﶵIҥHtλ~PFI [root@www tmp]# rm ./-aaa- |
oOO(remove)An`NOAq`bLinuxtΤUAFɮ׳Q~AҥHܦh distributions wgw][J -i oӿﶵFIӦpGnsؿUF卖@_ܡA Ҧplؿ̭٦lؿɡANnϥ -r oӿﶵFILAϥΡy rm -r zoӫOeAФdU`NFA]ӥؿɮסy֩wz|Q root I]tΤ|A߰ݧAO_n屼IҥHOӶWYOUFI oSO`NILApGATwӥؿnFAϥ rm -r Ӵ`O觋I
t~Adҥ|]Oܦ쪺ҤlAڭ̦beNLAɦW̦nnϥ "-" }YA ] "-" ᭱OﶵA]AªϥΡy rm -aaa- ztΪON|~PաI pGϥΫ᭱|ͨ쪺WܪkɡA٬O|XDIҥHAuLrO "-" kաI NO[Wؿy ./ zYiIpG man rm ܡA٦@ؤkANOy rm -- -aaa- z]iHڡI[root@www ~]# mv [-fiu] source destination [root@www ~]# mv [options] source1 source2 source3 .... directory ﶵPѼơG -f Gforce jNApGؼɮפwgsbA|߰ݦӪл\F -i GYؼɮ (destination) wgsbɡAN|߰ݬO_л\I -u GYؼɮפwgsbAB source sA~|s (update) dҤ@Gƻs@ɮסAإߤ@ؿANɮײʨؿ [root@www ~]# cd /tmp [root@www tmp]# cp ~/.bashrc bashrc [root@www tmp]# mkdir mvtest [root@www tmp]# mv bashrc mvtest # NYɮײʨYӥؿhANOo˰I dҤGGN𫍧ؿW٧W mvtest2 [root@www tmp]# mv mvtest mvtest2 <== o˴NWFI² # b Linux U٦Ӧ쪺OAW٬ rename A # ӫOM¾ihɦWPɧWAëDw@ɦWܧAPmvPCman renameC dҤTGAإߨɮסAAʨ /tmp/mvtest2 [root@www tmp]# cp ~/.bashrc bashrc1 [root@www tmp]# cp ~/.bashrc bashrc2 [root@www tmp]# mv bashrc1 bashrc2 mvtest2 # `NoApGhӨӷɮשΥؿAh̫@ӥؼɤ@wOyؿIz # NOANҦƲʨӥؿNI |
oOh (move) NIAnɮשΥؿɫAIoӫONܭnաI P˪AA]iHϥ -u ( update )ӴշsɮסAݬݬO_ݭnhoI t~@ӥγ~NOyܧɦWIzAڭ̥iHܻϥ mv ܧ@ɮתɦWOILAb Linux ~OA rename A iHΨӧjqɮתɦWAAiHQ man rename Ӭd\@UA]O쪺OI
ڭ̫eЪɦW (]tؿWٻPɮצW) AɦW̪iHF 4096 ӦrC ADӬOɦWHӬOؿWHKKINOQαu (/) ӤڡI AoɦWΪ̬OؿW١A@몺γ~ӬObg{ɭԡAΨӧP_Ϊա ҥHAoOiHΦbĤTg shell scripts YI Uڭ²檺HXӽdҨӽͤ@ basename P dirname γ~I
[root@www ~]# basename /etc/sysconfig/network network <== ²INo̫᪺ɦW [root@www ~]# dirname /etc/sysconfig/network /etc/sysconfig <== oܦؿWFI |
pGڭ̭nd\@ɮתeɡAӦpOnOHo̦۷h쪺OiHӤɤ@UG ̱`ϥΪɮפeOiHO cat P more less FI~ApGڭ̭ndݤ@ӫܤjɮ (nXMB)AOڭ̥uݭnݪXrӤwAӦpOnHI tail rA~A tac oӫO]iHFInFAUӫOγ~aI
d\@ɮתeiHϥ cat/tac/nl oXӫOڡI
[root@www ~]# cat [-AbEnTv] ﶵPѼơG -A G۷ -vET XﶵAiCX@ǯSrŦӤOťզӤwF -b GCX渹AȰwDťզ氵渹ܡAťզ椣Ц渹I -E GN_r $ ܥXӡF -n GCLX渹AsPťզ]|渹AP -b ﶵPF -T GN [tab] H ^I ܥXӡF -v GCX@ǬݤXӪSr dҤ@G˾\ /etc/issue oɮתe [root@www ~]# cat /etc/issue CentOS release 5.3 (Final) Kernel \r on an \m dҤGGӤWDApG٭n[L渹OH [root@www ~]# cat -n /etc/issue 1 CentOS release 5.3 (Final) 2 Kernel \r on an \m 3 # ݨFaIiHLX渹OIojɮnYӯSwɡAIγBI # pGQnsƪťզ檺渹AiHϥΡycat -b /etc/issuezAۤvլݬݡG dҤTGN /etc/xinetd.conf e㪺ܥX(]tSr) [root@www ~]# cat -A /etc/xinetd.conf #$ ....(ٲ).... $ defaults$ {$ # The next two items are intended to be a quick access place to$ ....(ٲ).... ^Ilog_type^I= SYSLOG daemon info $ ^Ilog_on_failure^I= HOST$ ^Ilog_on_success^I= PID HOST DURATION EXIT$ ....(ٲ).... includedir /etc/xinetd.d$ $ # WGgTARܦhƤFCt~AXGä|SrA # WSrOnzo{tIb̴NOFCWAb@몺ҤA # ϥ [tab] Pť䪺ĪGthAO@ťհڡIڭ̵LkD̪tOC # ɨϥ cat -A No{ǪťժaOԣFFI[tab]|H ^I ܡA # _rhOH $ ܡAҥHAiHo{C@᭱O $ ڡIL_r # bWindows/LinuxhӬۦPAWindows_rO ^M$ oC # oڭ̷|bĤQ vim nЮɡAAI |
KKILinux ̭yߡzOHIOA cat O Concatenate ]s^²gA Dn\ON@ɮתesLXbùWIҦpWҤlAڭ̱N /etc/issue LXӡIpG[W -n -b ܡAhC@eٷ|[W渹I
ӤHO֥ cat աIAɮפeƶWL 40 HWAKKIڥӤΦbùWݨ쵲GI
ҥHAtX@UnЪ more
Ϊ̬O less ӰnI~ApGO@몺 DOS ɮɡANݭnSOdN@ǩ__ǩǪŸFA
Ҧp_P [tab] AnܥXӡANo[J -A ﶵFI
[root@www ~]# tac /etc/issue Kernel \r on an \m CentOS release 5.3 (Final) # KKIPWdҤ@AOѳ̫@ܳI |
tac oӦnFIOHԲӪݤ@UA cat P tac ASo{rIաI
tac nON cat ϼgLӡAҥHL\N cat ۤϰաA cat
OѡyĤ@̫@sܦbùWzA tac hOy
ѳ̫@Ĥ@ϦVbùWܥX zAܦnaI
[root@www ~]# nl [-bnw] ɮ ﶵPѼơG -b Gw渹w觋ADnءG -b a GܤO_ŦA]P˦CX渹( cat -n)F -b t GpGŦAŪ@椣nCX渹(w])F -n GCX渹ܪkADnTءG -n ln G渹bù̥ܡF -n rn G渹bۤv쪺̥kܡAB[ 0 F -n rz G渹bۤv쪺̥kܡAB[ 0 F -w G渹쪺Ϊ줸ơC dҤ@G nl CX /etc/issue e [root@www ~]# nl /etc/issue 1 CentOS release 5.3 (Final) 2 Kernel \r on an \m # `NݡAoɮר꦳TAĤT欰ť(Sr)A # ]LOťզAҥH nl |[W渹IpGTwn[W渹AiHo˰G [root@www ~]# nl -b a /etc/issue 1 CentOS release 5.3 (Final) 2 Kernel \r on an \m 3 # I渹[Wo㨺pGn渹e۰ʸɤW 0 OHio [root@www ~]# nl -b a -n rz /etc/issue 000001 CentOS release 5.3 (Final) 000002 Kernel \r on an \m 000003 # KKI۰ʦbۤv쪺aɤW 0 Fw]OơApGQn令 3 ơH [root@www ~]# nl -b a -n rz -w 3 /etc/issue 001 CentOS release 5.3 (Final) 002 Kernel \r on an \m 003 # ܦȦ 3 o |
nl iHNXɮפe۰ʪ[W渹Iw]GP cat -n IӤ@ˡA nl iHN渹hܳ]pA]AƻPO_۰ʸɻ 0 \OC
e쪺 nl P cat, tac AO@ʪNƤ@fܨùWASiHi@@½ʪOڡH
ڭ̥iH@@[A~|eƬݤڡIINO more P less o
[root@www ~]# more /etc/man.config # # Generated automatically from man.conf.in by the # configure script. # # man.conf from man-1.6d ....(ٲ).... --More--(28%) <== Ibo@IAФ]|bo̵ݧAO |
JӪLݨWdҡApG more ᭱ɮפeƤjùXƮɡA N|X{WϥܡCIb̫@A̫@|ܥXثeܪʤA ӥB٥iHb̫@J@ǦΪOIb more oӵ{B@L{AAXӫiHG
n} more oӫOܤu@AiHU q N}FCӭnVU½ANϥΪťYiC ΪOjMrꪺ\A|ҨӻAڭ̨ϥΡy more /etc/man.config z[ɮסA YQnbɮפjM MANPATH oӦrɡAiHo˰G
[root@www ~]# more /etc/man.config # # Generated automatically from man.conf.in by the # configure script. # # man.conf from man-1.6d ....(ٲ).... /MANPATH <== JF / AдN|۰ʶ]̩U@浥ݿJI |
pPWAJF / AдN|]̩U@AåBݧAJA
AJFrëU[enter]AKKI more N|}lVUjMӦroӭƷjMP@ӦrA
iHU n YiڡI̫AQnݤFANU q Yi} more աI
[root@www ~]# less /etc/man.config # # Generated automatically from man.conf.in by the # configure script. # # man.conf from man-1.6d ....(ٲ).... : <== o̥iHݧAJOI |
less Ϊk_ more S[uʡAOHb more ɭԡAڭ̨èSkVe½A u᭱ݡAYϥΤF less ɡAINiHϥ [pageup] [pagedown] 䪺\өe½ݤAA@AOOeϥΨ[ݤ@ɮתeFOI
~Ab less YiH֦hyjMz\IiHVUjMA]iHVWjM bOܤΡWAiHJOG
d\ɮפe٥iHijMʧ@@ less O_ܤΰڡI less ٦ܦh\IԲӪϥΤ觋Шϥ man less dߤ@UڡI ^_^
AO_|ıo less ϥΪePһP man page D`OHSաI]manoӫONOIs less ܻeI {bAO_ıo less ܭnOH ^_^
ڭ̥iHNXƧ@@ӳ²檺^ANOXe (head) PX᭱ (tail) r\C
LAn`NOA head P tail OHyzӶi^I
[root@www ~]# head [-n number] ɮ ﶵPѼơG -n G᭱ƦrANܴX檺N [root@www ~]# head /etc/man.config # w]pAܫeQIYnܫe 20 ANonoˡG [root@www ~]# head -n 20 /etc/man.config dҡGpG᭱100檺ƳCLAuCL/etc/man.configeXAӦpOnH [root@www ~]# head -n -100 /etc/man.config |
head ^NNOyYzաAoӪF𫍧Ϊk۵MNOܥX@ɮתeXoI SINOoˡIYS[W -n oӿﶵɡAw]uܤQAYun@OHN[Jy head -n 1 filename zYiI
t~ -n ﶵ᭱ѼƸApGOtơAҦpWdҪ-n -100ɡANCeҦơA
]A᭱100C|ҨӻA/etc/man.config@141AhWzOyhead -n -100 /etc/man.configz
N|CXe41A᭱100椣|CLXӤFCo˻AeFaH ^_^
[root@www ~]# tail [-n number] ɮ ﶵPѼơG -n G᭱ƦrANܴX檺N -f Gܫ᭱ұɦWAnU[ctrl]-c~|tail [root@www ~]# tail /etc/man.config # w]pA̫᪺ܳQIYn̫᪺ܳ 20 ANonoˡG [root@www ~]# tail -n 20 /etc/man.config dҤ@GpGD/etc/man.configXAouQCX100H᪺ƮɡH [root@www ~]# tail -n +100 /etc/man.config dҤGG/var/log/messagese [root@www ~]# tail -f /var/log/messages <==nJ[crtl]-c~|}tailoӫOI |
head ۵MN tail ( ) oISIo tail Ϊk head ΪkthAuOܪO᭱XNOFIw]]OܤQAYnܫDQAN[ -n number ﶵYiC
dҤ@eNաIPhead -n -xxPuCUFytail -n +100 /etc/man.configz Nɮױq100H᳣|QCXӡAP˪Abman.config@141A]100~141N|QCXӰաI e99泣|QܥXӳI
ܩdҤGAѩ/var/log/messagesHɷ|ƼgJAAQnɮצƼgJɴNߨܨùWA NQ -f oӿﶵALiH@/var/log/messagesoɮסAs[JƳ|QܨùWC AU[crtl]-c~|}tailI
DG
pڷQn /etc/man.config 11 20 OH
G
oӤAQ@QAb 11 20 Aڨe 20 AAQAҥHGNOGy
head -n 20 /etc/man.config | tail -n 10 zAo˴NiHo 11 20 椧eFI
O̭AΨuROAݭnbĤTgɭԤ~I
|
ڭ̤W쪺AObd\¤rɪeC U@ڭ̷Qnd\DrɡA|ҨӻAҦp /usr/bin/passwd oӰɪeɡA SӦphŪXTOHƹWAѩɳq`O binary file AϥΤWY쪺OŪLeɡA T|ýXưڡIHSYAڭ̥iHQ od oӫOŪI
[root@www ~]# od [-t TYPE] ɮ ﶵΰѼơG -t G᭱iHUءy (TYPE)zXAҦpG a GQιw]rӿXF c Gϥ ASCII rӿX d[size] GQΤQi(decimal)ӿXơACӾƦ size bytes F f[size] GQίBIƭ(floating)ӿXơACӼƦ size bytes F o[size] GQΤKi(octal)ӿXơACӾƦ size bytes F x[size] GQΤQi(hexadecimal)ӿXơACӾƦ size bytes F dҤ@GбN/usr/bin/passwdeϥASCII觋Ӯi{I [root@www ~]# od -t c /usr/bin/passwd 0000000 177 E L F 001 001 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 0000020 002 \0 003 \0 001 \0 \0 \0 260 225 004 \b 4 \0 \0 \0 0000040 020 E \0 \0 \0 \0 \0 \0 4 \0 \0 \a \0 ( \0 0000060 035 \0 034 \0 006 \0 \0 \0 4 \0 \0 \0 4 200 004 \b 0000100 4 200 004 \b 340 \0 \0 \0 340 \0 \0 \0 005 \0 \0 \0 .....(᭱ٲ).... # ̥Ĥ@OH 8 iӪbytesơCHWdҨӻAĤG0000020N}YO # 16 byes (2x8) eNC dҤGGбN/etc/issueoɮתeH8iCXxsȻPASCIIӪ [root@www ~]# od -t oCc /etc/issue 0000000 103 145 156 164 117 123 040 162 145 154 145 141 163 145 040 065 C e n t O S r e l e a s e 5 0000020 056 062 040 050 106 151 156 141 154 051 012 113 145 162 156 145 . 2 ( F i n a l ) \n K e r n e 0000040 154 040 134 162 040 157 156 040 141 156 040 134 155 012 012 l \ r o n a n \ m \n \n 0000057 # pWҥܡAiHo{CӦriH쪺ƭȬI # ҦpeOƭȬ145AনQiG1x8^2+4x8+5=101C |
QγoӫOAiHN data file Ϊ̬O binary file eƵLŪXӳI MŪXӼƭȹw]OϥΫDrɡAYO 16 i쪺ƭȨܪA LAڭ٬OiHzL -t c ﶵPѼƨӱNƤrH ASCII rܡA M@ϥΪ̨ӻAoӫOγBiणjAOu{vӻA oӫOiHN binary file e@@ӤjPXAL̥iHݱoXF𫍧ա ^_^
pG¤rɨϥγoӫOAAƦܥiHo{ ASCII PrӪID`I ҦpWzdҤGAAiHo{Cӭ^r e Ө쪺ƦrO 145AনQiANo{O 101 oI pGA{yѡAXӹӤ@U ASCII ӪANo{uOTڡII
ڭ̦b ls oӫOɡAyLCɮצblinuxU|O\hɶѼơA OTӥDnܰʮɶATӮɶNqOOH
oOӮ쪺{HA|ҨӻAڭ̨Ӭݤ@ݧAۤv /etc/man.config oɮתɶaI
[root@www ~]# ls -l /etc/man.config -rw-r--r-- 1 root root 4617 Jan 6 2007 /etc/man.config [root@www ~]# ls -l --time=atime /etc/man.config -rw-r--r-- 1 root root 4617 Sep 25 17:54 /etc/man.config [root@www ~]# ls -l --time=ctime /etc/man.config -rw-r--r-- 1 root root 4617 Sep 4 18:03 /etc/man.config |
ݨFܡHbw]pUAls ܥXӪOɮת mtime A]NOoɮתeWQʪɶC ܩtάOb 9 4 ɭԦw˪A]Aoɮ׳Q;ɭPAQʪɶN^쨺ӮɶIF(ctime)I ٰOoڭ̨ϥΪdҷAϥΨman.configoɮװڡAҥHڡAL atime N|ܦϥΪɶFI
ɮתɶOܭnA]ApGɮתɶ~PܡAi|yYǵ{LkQB@C OKIU@ڵo{F@ɮרӦۥӡAӦpɮתɶܦy{bzɨOH ²ڡINΡytouchzoӫOYiI
KKInhètήɶ|yӦۥӡzIܦhɭԷ|oӰDI|Ҩӻbw˹Ltήɶi|QܡI ]xWɰϦbڼзǮɶyLªvɶ, GMTzkAҥH|ݨ춧A]NOAxWɶGMTɶ֤FKpɡI pGw˦欰Aڭ̪tΥi|KpɧAAɮ״NiӦۤKpɫFC[root@www ~]# touch [-acdmt] ɮ ﶵPѼơG -a Gȭq access timeF -c GȭקɮתɶAYɮפsbhإ߷sɮסF -d G᭱iHqӤΥثeA]iHϥ --date="ήɶ" -m Gȭק mtime F -t G᭱iHqɶӤΥثeɶA榡[YYMMDDhhmm] dҤ@Gsؤ@ӪŪɮר[ɶ [root@www ~]# cd /tmp [root@www tmp]# touch testtouch [root@www tmp]# ls -l testtouch -rw-r--r-- 1 root root 0 Sep 25 21:09 testtouch # `NAoɮתjpO 0 OIbw]AUApG touch ᭱ɮסA # hɮתTӮɶ (atime/ctime/mtime) |sثeɶCYɮפsbA # h|Dʪإߤ@ӷsŪɮ׳IҦpWoӨҤlI dҤGGN ~/.bashrc ƻs bashrcA]ƻsݩʡAˬd [root@www tmp]# cp -a ~/.bashrc bashrc [root@www tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc -rw-r--r-- 1 root root 176 Jan 6 2007 bashrc <==oO mtime -rw-r--r-- 1 root root 176 Sep 25 21:11 bashrc <==oO atime -rw-r--r-- 1 root root 176 Sep 25 21:12 bashrc <==oO ctime |
bWoӮרҷڭ̨ϥΤFyllzoӫO(ӭ^Lpg)AoӫONOyls -lzNA llsbAOQyXӡz@өROOWCROOWڭ̷|bbash`ԽͪAo̥Dll="ls -l"YiC ܩy ; zhNsOUFաIAiHb@OgJhOA oǫOiHy̧ǡzCѤWOڭ̷|Dll@榳TӫOQUFbP@椤C
ܩ檺GAڭ̥iHo{ƪePݩʬOQƻsLӪA]ɮפeɶ(mtime)P쥻ɮۦPC OѩoɮOQإߪA]A(ctime)PŪɶNKe{bɶաI pGAQnܧoɮתɶOHiHo˰G
dҤTGקרҤG bashrc ɮסANվ㬰ѫe [root@www tmp]# touch -d "2 days ago" bashrc [root@www tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc -rw-r--r-- 1 root root 176 Sep 23 21:23 bashrc -rw-r--r-- 1 root root 176 Sep 23 21:23 bashrc -rw-r--r-- 1 root root 176 Sep 25 21:23 bashrc # WӽdҤݬݡAӬO 25 骺ܦF 23 F (atime/mtime) # LA ctime èSۧܳI dҥ|GNWӽdҪ bashrc אּ 2007/09/15 2:02 [root@www tmp]# touch -t 0709150202 bashrc [root@www tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc -rw-r--r-- 1 root root 176 Sep 15 2007 bashrc -rw-r--r-- 1 root root 176 Sep 15 2007 bashrc -rw-r--r-- 1 root root 176 Sep 25 21:25 bashrc # `NݬݡAb atime P mtime ܤFAO ctime hOOثeɶI |
zL touch oӫOAڭ̥iHqɮתPɶCåB]iHإߤ@ӪŪɮ׳I LAn`NOAYϧڭ̽ƻs@ɮɡAƻsҦݩʡA]Skƻs ctime oݩʪC ctime iHOoɮ׳̪A (status) QܪɶCLצpA٬OnijaA ڭ̥ɬݪɮݩʤAn٬Oݩ mtime ڡIڭߪ``Ooɮתyez OɭԳQʪAGH
LצpA touch oӫO̱`QϥΪpOG
ĤBLinuxɮveڭ̥iHD@ɮצYzݩʡA ]AŪg(r, w, x)vAάO_ؿ (d) Pɮ (-) Ϊ̬Os (l) ݩʡI nקݩʪkbe]LF(chgrp, chown, chmod) Ap`|A[jɥR@UI
Fr, w, xv~AbLinuxExt2/Ext3ɮרtΤUAڭ٥iH]wLtݩʡA oiϥ chattr ӳ]wAӥH lsattr ӬdݡA̭nݩʴNOiH]w䤣iק諸SʡIsɮת֦̳iקI oݩʥiO۷nAרObwW (security)I
AӽƲߤ@UW@ͨ쪺vANUDݤ@ݥG
DG
AtΦӤ@먭ϥΪ dmtsaiALsݩ usersALaؿb /home/dmtsaiA
AOrootAAQNA ~/.bashrc ƻsLAiH@H
G
ѤW@vڭ̥iHD root MiHNoɮƻs dmtsaiALoɮצb dmtsai
aؿoi dmtsai SkŪg(]ɮݩ root I dmtsai Sϥ chown G)C
~Aڭ̤Sл\ dmtsai ۤv .bashrc ]wɡA]Aڭ̥iHipUʧ@G
ƻsɮסG cp ~/.bashrc ~dmtsai/bashrc |
DG
ڷQb /tmp Uإߤ@ӥؿAoӥؿW٬ chapter7_1 AåBoӥؿ֦̬ dmtsaiA
sլ users A~AHiHiJӥؿsɮסALF dmtsai ~ALHקӥؿUɮסC
G
]F dmtsai ~ALHקӥؿUɮסAҥHӥؿvӬO drwxr-xr-x ~I
]Aӳo˰G
إߥؿG mkdir /tmp/chapter7_1 |
bWoӨDApGAD 755 ӤƬOpXӪAAӹv@w{תFC
pGAD 755 ӪH...֦^he@ݬ chmod
ӫOгڡIoܭnIAonMAѨ~_hNi椣Uho
]Av{ѪthFAUڭ̴Nnӽͤ@͡AysW@ɮשΥؿɡAw]vOHzoijDI
OKI{bڭ̪DpإߩΪ̬Oܤ@ӥؿɮתݩʤFALA ADAإߤ@sɮשΥؿɡALw]v|OܡHINP umask oӪNFI umask ObdOHWA umask NOw yثeϥΪ̦bإɮשΥؿɭԪvw]zA poγ]w umask OHLwHU觋ӫwG
[root@www ~]# umask 0022 <==P@vO᭱TӼƦrI [root@www ~]# umask -S u=rwx,g=rx,o=rx |
d\觋ءA@إiHJ umask ANiHݨƦrAv]wơA @ثhO[J -S (Symbolic) oӿﶵAN|HŸ觋ܥXvFI _ǪOA umask ||ռƦrڡHOuTնܡHOSաC Ĥ@լOSvΪAڭ̥nzLAҥHݫ᭱TէYiC
bw]vݩʤWAؿPɮO@˪CqĤڭ̪D x vؿOD`nI O@ɮתإ߫hӦ檺vA]@ɮ׳q`OΦbƪOIMݭn檺vFC ]Aw]ppUG
n`NOAumask ƫOyӹw]ȻݭnvIz] rBwBx OO 4B2B1 AҥHoI]NOAngvANOJ 2 AӦpGnŪvA]NO 4 AnŪPgvA]NO 6 AӭnPgJvA]NO 3 AoAѶܡHаݧAA 5 OHI NOŪP檺vաI
pGHWҤlӻܡA] umask 022 AҥH user èSQvAL group P others vQF 2 (]NO w ov)AϥΪ̡G
[root@www ~]# umask 0022 [root@www ~]# touch test1 [root@www ~]# mkdir test2 [root@www ~]# ll -rw-r--r-- 1 root root 0 Sep 27 00:25 test1 drwxr-xr-x 2 root root 4096 Sep 27 00:25 test2 |
I@FaITwsɮתvOSC
Q@ӪpApGAAPǦbP@Ḓu@ɡA]ĄӥbiP@ӱMDA Ѯv]ĄӪbإߦnFۦPsժAAåBN /home/class/ ؿĄӤHMDؿC Q@UASiAһs@ɮקAPǵLksHGupܡAN˸FI
oӰDܱ`oͰڡI|WרҨӬݴNnFAAݤ@U test1 vOXH 644 OINOypG umask qw 022 AsتƥuϥΪ̦ۤv㦳 w vA PsժHu r oӥiŪvӤwAõLkקIzo˭n@Ps@MDڡIzOaI
ҥHAڭ̻ݭnsɮPsժϥΪ̦@PsɡA umask sմNள 2 o w vI ҥHoA umask NonO 002 ~iHIo˷sتɮפ~O -rw-rw-r-- vҼ˳I p]w umask OH²檺ܡAb umask ᭱J 002 NnFI
[root@www ~]# umask 002 [root@www ~]# touch test3 [root@www ~]# mkdir test4 [root@www ~]# ll -rw-rw-r-- 1 root root 0 Sep 27 00:36 test3 drwxrwxr-x 2 root root 4096 Sep 27 00:36 test4 |
ҥHAo umask sɮPؿw]vOܦYIoӷiHΦbAWA רOӦbA[]ɮצA (file server) A|ҨӻA SAMBA Server Ϊ̬O FTP server ɡA Oܭn[IooAAϥΪ̬O_Nɮi@BQΪDInI
DG
]A umask 003 Aаݸ umask pUAإߪɮPؿvH
G
umask 003 AҥHv --------wxA]G
ɮסG (-rw-rw-rw-) - (--------wx) = -rw-rw-r-- |
bw]pA root umask |hݩʡAroot umask w]O 022 A oOwҶqաܩ@먭ϥΪ̡Aq`L̪ umask 002 AYOdPsժgJvOI Aw] umask ]wiHѦ /etc/bashrc oɮתeALAijקɮסA AiHѦĤQ@ bash shell 쪺ҰѼƳ]w (~/.bashrc) I
Hɮ٦ݩʡHOEvN֭nƱFAM٦ݩʡAuOnR
OSkANOɮתݩʦsbڡILAoêݩʽTtΦܤjU
רObtΦw (Security) WAnOILnjժOAUchattrOubExt2/Ext3ɮרtΤWͮA
LɮרtΥiNLk䴩oӫOFCUڭ̴Nӽͤ@ͦp]wPˬdoêݩʧaI
[root@www ~]# chattr [+-=][ASacdistu] ɮשΥؿW ﶵPѼơG + GW[Y@ӯSѼơAL쥻sbѼƫhʡC - GY@ӯSѼơAL쥻sbѼƫhʡC = G]w@wABȦ᭱Ѽ A G]wF A oݩʮɡAYAsɮ(Υؿ)ɡALsɶ atime N|QקAiקKI/OCLתsϺСCotCqU S G@ɮODPBgJϺЪ(zаѦĤsync)ApG[W S o ݩʮɡAAiɮתקAӧʷ|yPBzgJϺФC a G]w a AoɮױNuW[ơAӤR]קơAuroot ~]woݩʡC c Goݩʳ]wAN|۰ʪNɮסyYzAbŪɭԱN|۰ʸYA ObxsɭԡAN|iYAxs(ݨӹjɮצGZΪI) d G dump {dzQ檺ɭԡA]w d ݩʱNiϸɮ(Υؿ)|Q dump ƥ i Go i iNܼF`FILiH@ɮסyQRBWB]ws]Lk gJηsWơIztΦwʦ۷jUqIu root ]wݩ s Gɮ׳]wF s ݩʮɡApGoɮ׳QRALN|QXoӵw ŶAҥHpG~RFALkϦ^ӤFI u GP s ۤϪAϥ u ӳ]wɮɡApGɮ׳QRFAhƤe sbϺФAiHϥΨӱϴɮ׳I `NGݩʳ]w`O a P i ]wȡAӥBܦh]wȥn root ~]w dҡGйը/tmpUإɮסAå[J i ѼơAէRݬݡC [root@www ~]# cd /tmp [root@www tmp]# touch attrtest <==إߤ@Ӫɮ [root@www tmp]# chattr +i attrtest <== i ݩ [root@www tmp]# rm attrtest <==էRݬ rm: remove write-protected regular empty file `attrtest'? y rm: cannot remove `attrtest': Operation not permitted <==ާ@\i # ݨFܡHIIIs root ]SkNoɮקROIѰ]wI dҡGбNɮת i ݩʨI [root@www tmp]# chattr -i attrtest |
oӫOOܭnAרObtΪƦwWIѩoݩʬOêʽAҥHݭnH lsattr ~ݨݩI𫟺AӤH{̭n +i P +a oݩʤFC+i iH@ɮLkQʡAݭnjPtΦwHӻA uO۷nIY٦۷hݩʬOݭn root ~]wOI
~ApGO log file oتnɡANݭn +a oӥiHW[AOק¦ƻPRѼƤFIˡHܴΧaI
Ӵn (QE) {ɡAڭ̦AӲ@p]wLaI
[root@www ~]# lsattr [-adR] ɮשΥؿ ﶵPѼơG -a GNɪݩʤ]qXӡF -d GpGOؿAȦCXؿݩʦӫDؿɦWF -R GsPlؿƤ]@֦CXӡI [root@www tmp]# chattr +aij attrtest [root@www tmp]# lsattr attrtest ----ia---j--- attrtest |
ϥ chattr ]wAiHQ lsattr Ӭd\êݩʡCLA oӫObϥΤWnSOpߡA_h|yܤjxZCҦpGYѧA߱nAMN /etc/shadow oӭnKXOɮL]w㦳 i ݩʡALFYzѤA AMnsWϥΪ̡Ao@LksWIOháA֥hN i ݩʮaI
ڭ̫e@ɮתnvANO rwx oTŪBgB檺vC OAyB̦ͭbĤؿ`A @w`NF@ơANOAڭ̪ /tmp vǩǪH ٦A /usr/bin/passwd ]ǩǪH^ưڡHݬݥG
[root@www ~]# ls -ld /tmp ; ls -l /usr/bin/passwd drwxrwxrwt 7 root root 4096 Sep 27 18:23 /tmp -rwsr-xr-x 1 root root 22984 Jan 7 2007 /usr/bin/passwd |
Oӥu rwx ܡH٦LSv( s t )ڡH.....YS}lF @_@
] s P t ovNqPtΪb (ĤQ|)tΪ{(process, ĤQC)A
ҥH᭱`ͧA~|IUݬݴNnApGݤ]SYA
Dsb̺٬SUID/SGIDHΦp]wYiAtε{dz`ŪAA^ӬݬݳI
s oӼлxX{bɮ֦̪ x vWɡAҦp责쪺 /usr/bin/passwd oɮתvAGy-rwsr-xr-xzAɴNQ٬ Set UIDA²٬ SUID SvC SUIDv@ɮתS\OOHWSUIDo˪P\G
owFAi SUID ٬OSASYAڭ|ӨҤlӻnFC ڭ̪ Linux tΤAҦbKXOb /etc/shadow oɮ̭AoɮתvGy-r-------- 1 root rootzANOoɮȦrootiŪBȦrootiHjgJӤwC JMoɮȦ root iHקA vbird oӤ@bϥΪ̯_ۦקۤvKXOH AiHϥΧAۤvbJypasswdzoӫOӬݬݡAKKI@ϥΪ̷MiHקۤvKXFI
ISĬڡI /etc/shadow N vbird oӤ@bhsA vbird ٯקoɮפKXOH oNO SUID \աIǥѤWz\Aڭ̥iHD
pG vbird ϥ cat hŪ /etc/shadow ɡALŪܡH] cat 㦳 SUID vAҥH vbird ycat /etc/shadowz ɡAOŪ /etc/shadow Cڭ̥Τ@iܷNϨӻpUG
t~ASUID ȥiΦbbinary program WA
Φb shell script WIoO] shell script uONܦh binary
ɥsiӰӤwIҥH SUID vA٬Oon shell script IsiӪ{]wA
ӤO shell script CMASUID ؿ]OLĪoInSOdNC
s лxbɮ֦̪ x ج SUIDA s bsժ x ɫh٬ Set GID, SGID oIOo˨SI^_^C |ҨӻAAiHΩUO[㦳 SGID vɮ׳G
[root@www ~]# ls -l /usr/bin/locate -rwx--s--x 1 root slocate 23856 Mar 15 2007 /usr/bin/locate |
P SUID POASGID iHwɮשΥؿӳ]wIpGOɮרӻA SGID pU\G
|ҨӻAW /usr/bin/locate oӵ{iHhjM /var/lib/mlocate/mlocate.db oɮתe (Բӻ|bU`z)A mlocate.db vpUG
[root@www ~]# ll /usr/bin/locate /var/lib/mlocate/mlocate.db -rwx--s--x 1 root slocate 23856 Mar 15 2007 /usr/bin/locate -rw-r----- 1 root slocate 3175776 Sep 28 04:02 /var/lib/mlocate/mlocate.db |
P SUID D`AYڨϥ vbird oӱbh locate ɡA vbird N|o slocate sժ䴩A ]NhŪ mlocate.db աID`aI
F binary program ~AƹW SGID ]ΦbؿWAo]OD``@إγ~I @ӥؿ]wF SGID vALN㦳pU\G
SGID M}oӻOD`nI]oAθsvDAziHѦҤ@UҼרAӴN SGID @AѪI^_^
o Sticky Bit, SBIT ثeuwؿġAɮפwgSĪGFC SBIT ؿ@άOG
yܻGҳoӨϥΪ̩ A ؿO㦳sթΨLHAåB֦ӥؿ w vA oܡyҨϥΪ̹ӥؿHإߪؿɮקii "R/W/h" ʧ@Cz LApGN A ؿ[WF SBIT vخɡA hҥuwۤvإߪɮשΥؿiR/W/ʵʧ@AӵLkRLHɮסC
|ҨӻAڭ̪ /tmp vOydrwxrwxrwtzA bo˪veUAHiHb /tmp sWBקɮסAȦɮ/ؿإߪ̻P root RۤvؿɮסCoӯSʤ]OnڡIAiHo˰²檺աG
ѩ SUID/SGID/SBIT oA{ǪA]AjաAoƦbzŪĤQC{Ǥ譱ѫAnA^@@I
ثeAA²檺¦NnFI好ѦҸƤ]ij\Ū@fI
eйL SUID P SGID \Ap]wɮרϦ㦳 SUID P SGID vOH oNݭnĤƦrvkFI {bAӤwgDƦrAv觋yTӼƦrzզXA pGboTӼƦreA[W@ӼƦrܡA̫eӼƦrNNoXvFI
]nN@ɮvאּy-rwsr-xr-xzɡAѩ s bϥΪvAҥHO SUID A]A b 755 e٭n[W 4 A]NOGy chmod 4755 filename zӳ]wI~A٦j S Pj T ͳIѦҩUdҰաI
`NGUdҥuOmߦӤwAҥHϥΦP@ɮרӳ]wAAA SUID OΦbؿWA SBIT OΦbɮפWI[root@www ~]# cd /tmp [root@www tmp]# touch test <==إߤ@ӴեΪ [root@www tmp]# chmod 4755 test; ls -l test <==[J㦳 SUID v -rwsr-xr-x 1 root root 0 Sep 29 03:06 test [root@www tmp]# chmod 6755 test; ls -l test <==[J㦳 SUID/SGID v -rwsr-sr-x 1 root root 0 Sep 29 03:06 test [root@www tmp]# chmod 1755 test; ls -l test <==[J SBIT \I -rwxr-xr-t 1 root root 0 Sep 29 03:06 test [root@www tmp]# chmod 7666 test; ls -l test <==㦳Ū SUID/SGID v -rwSrwSrwT 1 root root 0 Sep 29 03:06 test |
̫@ӨҤlNnSOp߰աI|X{jg S P T OHOpgܡH ] s P t ON x ovAOASo{Aڭ̬OUF 7666 I]NOA user, group H others S x oӥi檺лx( ] 666 )AҥHAo S, T NNOyŪzIH SUID Oܡyɮצb檺ɭԡA㦳ɮ֦̪vzAOɮ ֦̳LkFĄӪvLHϥΡHMNOŪաI ^_^
ӰFƦrk~Ap]iHzLŸkӳBzI𫟺 SUID u+s A SGID g+s ASBIT hO o+t oIӬݬݦpUdҡG
# ]wv -rws--x--x ҼˡG [root@www tmp]# chmod u=rwxs,go=x test; ls -l test -rws--x--x 1 root root 0 Aug 18 23:47 test # ӤWA[W SGID P SBIT bWzɮvI [root@www tmp]# chmod g+s,o+t test; ls -l test -rws--s--t 1 root root 0 Aug 18 23:47 test |
pGAQnDYɮתơAҦpOݩ ASCII Ϊ̬O data ɮסAΪ̬O binary A B𫟺SϥΨʺA祃w (share library) TANiHQ file oӫO˾\I |ҨӻG
[root@www ~]# file ~/.bashrc /root/.bashrc: ASCII text <==iDڭ̬O ASCII ¤rɰڡI [root@www ~]# file /usr/bin/passwd /usr/bin/passwd: setuid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped # ɪƥiNhoFI]Aoɮת suid vBۮe Intel 386 # Ūw饭xBϥΪO Linux ֤ 2.6.9 ʺA祃wsC [root@www ~]# file /var/lib/mlocate/mlocate.db /var/lib/mlocate/mlocate.db: data <== oO data ɮסI |
zLoӫOAڭ̥iH²檺P_oɮת榡I
ɮתjMiNF`FI]ڭ̱``ݭnDɮשb̡A~ɮi@ǭקκ@ʧ@C
ǮɭԬYdzn]wɪɦWOܪAOU distribution mؿhPC
ɴNonQΤ@ǷjMONӳ]wɪɦWXӡAoˤ~קIzOaI^_^
ڭ̪DbݾҦAsJ⦸[tab]NDϥΪ̦h֫OiHUFC
ADoǫOɦWb̡H|ҨӻAls oӱ`ΪOb̩OH
NzL which type ӧMaI
[root@www ~]# which [-a] command ﶵΰѼơG -a GNҦ PATH ؿiH쪺OCXAӤĤ@ӳQ쪺OW dҤ@GOrootP@bjM ifconfig oӫOɦW [root@www ~]# which ifconfig /sbin/ifconfig <== root iH쥿TɦWI [root@www ~]# su - vbird <== vbird hI [vbird@www ~]$ which ifconfig /usr/bin/which: no ifconfig in (/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin :/home/vbird/bin) <==FIM@먭b䤣I # ] which OھڨϥΪ̩ҳ]w PATH ܼƤؿhjMiɪIҥHA # P PATH ]weҧ쪺OM@˰աI] /sbin b vbird # PATH A䤣]OzҷMڡIAGH [vbird@www ~]$ exit <==OoN^쥻 root dҤGG which hX which ɦWH [root@www ~]# which which alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot ' /usr/bin/which # M| which A𫟺@ӬO alias oNOIOԣH # NOҿתyROOWzANOJ which |᭱OաI # hƧڭ̷|b bash `AӽͪI dҤTGЧX cd oӫOɦW [root@www ~]# which cd /usr/bin/which: no cd in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin :/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin) # MKHiS cd AکN root cd ڡI |
oӫOOھڡyPATHzoܼƩҳWd|AhjMyɡzɦW ҥHAIOXyɡzӤwIB which ᭱OyɦWzIY[W -a ﶵAhiHCXҦiH쪺PWɡAӫDܲĤ@ӦӤwI
̫@ӽdҳ̦A cd oӱ`ΪOM䤣ڡIOHoO] cd Oybash تOzաI O which w]O PATH ҳWdؿAҥHM@w䤣쪺ڡIHSYIڭ̥iHzL type oӫOI type Ϊkڭ̱Nb ĤQ@ bash Aӽ͡I
Aӽͤ@ͫjMɮקaIb Linux U]۷ujMOIq` find ܱ`ΪI]tC~A
]ܾwСIq`ڭ̳Oϥ whereis Ϊ̬O locate ˬdApGu䤣FA~H find ӷjMI
OH] whereis P locate OQθƮwӷjMơAҥH۷ֳtAӥBèSڪjMwСA
ٮɶաI
[root@www ~]# whereis [-bmsu] ɮשΥؿW ﶵPѼơG -b :u binary 榡ɮ -m :ub manual |Uɮ -s :u source ӷɮ -u :jMbWzTӶطLSɮ dҤ@GХΤPX ifconfig oɦW [root@www ~]# whereis ifconfig ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz [root@www ~]# su - vbird <== vbird [vbird@www ~]$ whereis ifconfig <==P˪GI ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz [vbird@www ~]$ exit <==^k root hI # `NݡA which @ϥΪ̧䤣쪺 ifconfig oiH whereis I # oO]tίu ifconfig oӡyɮסzAOϥΪ̪ PATH èS[J /sbin # ҥHAӧA䤣YǫOɡAɮjMOݦAI dҤGGuX passwd yzɦW(man page) [root@www ~]# whereis -m passwd passwd: /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz |
@Uڭ̷| find oӷjMOA find OܱjjjMOAɶΪܤjI (] find OjMwСApGAwФªܡAKKII) oӮɭ whereis N۷nΤFIt~A whereis iH[JﶵӧMơA ҦppGAOni( binary )[W -b NiHաI pG[ﶵܡANNҦƦCXoI
whereis 쩳OϥΤNNOHjMt| find ֳohH
]SIoO] Linux tη|NtΤҦɮ׳Ob@ӸƮwɮ̭A
ӷϥ whereis Ϊ̬OUn locate ɡA|HƮwɮתeǡA
]AɫAٷ|o{ϥγoӰɮɡA|wgQɮסI
ӥB]䤣̷sإߪɮשOIoNO]oӫOOѸƮwGhjMɮתҦbڡI
hPoӸƮwAаѦҤUC locate OC
[root@www ~]# locate [-ir] keyword ﶵPѼơG -i GjpgtF -r G᭱iWܪkܤ觋 dҤ@GXtΤҦP passwd ɦW [root@www ~]# locate passwd /etc/passwd /etc/passwd- /etc/news/passwd.nntp /etc/pam.d/passwd ....(Uٲ).... |
o locate ϥΧ²Ab᭱JyɮתW١zANo쵲GC |WҤlӻAڿJ locate passwd AbɦW (]t|W) Aun passwd b𫟺A N|QܥXӪIo]OӫܤKnΪOApGAѰOYɮתɦWɡ
OAoӪF٬OϥΤWIOHA|o{ϥ locate ӴMƪɭԯSO֡A oO] locate M䪺ƬOѡywإߪƮw /var/lib/mlocate/z ̭ƩҷjM쪺AҥHΪbhwзsơAIMOܧֳtoI
OHNO]LOgѸƮwӷjMAӸƮwإ߹w]ObCѰ@ (C distribution PACentOS 5.x OCѧsƮw@I)AҥHAsإ߰_ӪɮסA o٦bƮwsejMɮסA locate |iDAy䤣IzI]nsƮwrI
_ʧsƮwHMiHڡIs locate ƮwkD`²AJy updatedb zNiHFI updatedb O|hŪ /etc/updatedb.conf oӳ]wɪ]wAMAhwи̭ijMɦWʧ@A ̫NsӸƮwɮoI] updatedb |hjMwСAҥHA updatedb ɡAi|ݼƤɶI
[root@www ~]# find [PATH] [option] [action] ﶵPѼơG 1. PɶﶵG@ -atime, -ctime P -mtime AH -mtime -mtime n Gn ƦrANqb n Ѥey@ѤzQʹLeɮסF -mtime +n GCXb n Ѥe(t n ѥ)QʹLeɮɦWF -mtime -n GCXb n Ѥ(t n ѥ)QʹLeɮɦWC -newer file Gfile @ӦsbɮסACX file ٭nsɮɦW dҤ@GNLhtΤW 24 pɤʹLe (mtime) ɮצCX [root@www ~]# find / -mtime 0 # 0 OII0 NثeɶAҥHAq{b}l 24 pɫeA # ܰʹLeɮ׳|QCXӡIpGOTѫe 24 pɤH # find / -mtime 3 ܰʹLɮ׳QCXNI dҤGGM /etc UɮסApGɮפ /etc/passwd sNCX [root@www ~]# find /etc -newer /etc/passwd # -newer ΦbɮפsYOܦΪI |
ɶѼƯuON䪺Iڭ̲{bD atime, ctime P mtime NqApGAQnX@ѤQʹLɮצW١A iHϥΤWzdҤ@@kCpGڷQnXy4ѤQʹLɮɦWzOHiHϥΡy find /var -mtime -4 zCpGOy4ѫe@ѡzNΡy find /var -mtime 4 zCS[Wy+, -ztOܤjIڭ̥iH²檺ϥܨӻ@UG
Ϥ̥k䬰ثeɶAVhNVeɶbաCѹ5.2.1ڭ̥iHMDG
D`aIAiHb /var/ ؿUjM@UAP@UXɮתtIAӬݬݨL find ΪkaI
ﶵPѼơG 2. PϥΪ̩θsզW٦ѼơG -uid n Gn ƦrAoӼƦrOϥΪ̪b IDAY UID Ao UID OOb /etc/passwd ̭PbWٹƦrCo譱ڭ̷|bĥ|gСC -gid n Gn ƦrAoӼƦrOsզW٪ IDAY GIDAo GID Ob /etc/groupAЧڭ̷|ĥ|g -user name Gname ϥΪ̱bWٳIҦp dmtsai -group nameGname sզWٳAҦp users F -nouser GMɮת֦̤sb /etc/passwd HI -nogroup GMɮת֦sդsb /etc/group ɮסI Aۦw˳nɡAܥiӳn骺ݩʷèSɮ̡֦A oOiIboӮɭԡANiHϥ -nouser P -nogroup jMC dҤTGjM /home Uݩ vbird ɮ [root@www ~]# find /home -user vbird # oӪF]ܦΪڭ̭nX@ӨϥΪ̦btηҦɮɡA # NiHQγoӫONݩYӨϥΪ̪Ҧɮ׳XӳI dҥ|GjMtΤݩHɮ [root@www ~]# find / -nouser # zLoӫOAiHNXǤӥ`ɮסC # pG줣ݩtΥHɮɡAnӺiA # ɭԬO`רOAgHlXۦsĶnɡC |
pGAQnXYӨϥΪ̦btΩUإߤFԣNNAϥΤWzﶵPѼơANXӰաI ܩ -nouser -nogroup ﶵ\तAFAۦѺWUɮɷ|oͤ~A pGANtθ̭YӱbRFAOӱbwgbtΤإ߫ܦhɮɡANi|o͵LDtɮצsbI ɧANoϥγo -nouser ӧXɮoI
ﶵPѼơG 3. PɮvΦW٦ѼơG -name filenameGjMɮצW٬ filename ɮסF -size [+-]SIZEGjM SIZE ٭nj(+)Τp(-)ɮסCo SIZE W榳G c: N byteA k: N 1024bytesCҥHAn 50KB ٭njɮסANOy -size +50k z -type TYPE GjMɮת TYPE ADnG@륿Wɮ (f), ˸mɮ (b, c), ؿ (d), s (l), socket (s), FIFO (p) ݩʡC -perm mode GjMɮvynz mode ɮסAo mode chmod ݩʭȡA|ҨӻA -rwsr-xr-x ݩʬ 4755 I -perm -mode GjMɮvynnA mode vzɮסA|ҨӻA ڭ̭njM -rwxr--r-- AY 0744 ɮסAϥ -perm -0744A @ɮתv -rwsr-xr-x AY 4755 ɡA]|QCXӡA ] -rwsr-xr-x ݩʤwgnAF -rwxr--r-- ݩʤFC -perm +mode GjMɮvy]t@ mode vzɮסA|ҨӻAڭ̷jM -rwxr-xr-x AY -perm +755 ɡA@ɮݩʬ -rw------- ]|QCXӡA]L -rw.... ݩʦsbI dҤGXɦW passwd oɮ [root@www ~]# find / -name passwd # Qγo -name iHjMɦWڡI dҤGX /var ؿUAɮ Socket ɦWǡH [root@www ~]# find /var -type s # o -type ݩʤ]ܦUIרOnXǩDzɮסA # Ҧp socket P FIFO ɮסAiH find /var -type p -type s ӧI dҤCGjMɮt SGID SUID SBIT ݩ [root@www ~]# find / -perm +7000 # ҿת 7000 NO ---s--s--t Aunt s t NCXA # ҥHMnϥ +7000 Aϥ -7000 ܭnt ---s--s--t ҦTvA # ]ANO +7000 AGH |
WzdҤ쪺N -perm oӿﶵաILIbXSvɮoI ڭ̪D SUID P SGID iH]wbGi{WA]ڷQnX /bin, /sbin oӥؿUA un㦳 SUID SGID NCXӸɮסAAiHo˰G
[root@www ~]# find /bin /sbin -perm +6000
|
] SUID O 4 ASGID 2 A`@ 6 A]i +6000 ӳBzovI ܩ find ᭱iHhӥؿӶijMIt~A find ӴN|jMؿAoӯS]nSO`NI ̫Aڭ̦AӬݤ@U find ٦S\aI
ﶵPѼơG 4. B~ii檺ʧ@G -exec command Gcommand LOA-exec ᭱iAB~OӳBzjM GC -print GNGCLùWAoӰʧ@Ow]ʧ@I dҤKGNWӽdҧ쪺ɮרϥ ls -l CXӡ [root@www ~]# find / -perm +7000 -exec ls -l {} \; # `NA -exec ᭱ ls -l NOB~OAO䴩ROOWA # ҥHȯϥ ls -l iHϥ ll I`N`NI dҤEGXtΤAj 1MB ɮ [root@www ~]# find / -size +1000k # Mb man page iHϥ M P G ON MB P GBA # LAͫoդXӳoӥ\ҥHAثeӬOȤ䴩 c P k aI |
find S\NOiB~ʧ@(action)Cڭ̱NdҤKҤlHϸѨӻpUG
ӽdҤSa観 {} H \; ٦ -exec orAoǪF𫍧NqG
zL 5.2.2 AӴNeA -exec \; NqFaI
pGAn䪺ɮO㦳SݩʪAҦp SUID Bɮ̡֦BɮפjpA Q locate OSkFAjMI find N㪺ܭnաI t~Afind ٥iHQθUΦrӧMɦWOI|ҨӻAAQnX /etc UɦW]t httpd ɮסA ANiHo˰G
[root@www ~]# find /etc -name '*httpd*'
|
iHwjMؿ(sPؿ)AåBiHQB~ﶵPѼƨӧ̥TɦWIuOnnΡI Lѩ find bMƪɫ۷wСIҥHSƱnϥ find աIΪOiHNINOW쪺 whereis P locate oI
ڭ̪DvϥΪ̱bӻOD`nA]LiHϥΪ̯णŪ/إ/R/קɮשΥؿI bo@ڭ̤ФFܦhɮרtΪzOAĤhФFܦhɮvNqCboӤp`A ڭ̴NNo̵X_ӡA@UOb˪vU~B@aI^_^
@BϥΪ̯iJYؿyiu@ؿzvG
GBϥΪ̦bYӥؿŪ@ɮתvH
TBϥΪ̥iHק@ɮתvH
|B@ӨϥΪ̥iHإߤ@ɮתvH
BϥΪ̶iJYؿðӥؿUYӫOvH
DG
@ӨϥΪ vbird iycp /dir1/file1 /dir2zOɡAл dir1, file1, dir2 ̤pһvH
G
cp ɡA vbird nyŪӷɡAåBgJؼɡIzҥHѦҤWzĤGIPĥ|II
]Uɮ/ؿ̤pvӬOG
|
DG
@ɮץW /home/student/www/index.html AUɮ/ؿvpUG
Gdrwxr-xr-x 23 root root 4096 Sep 22 12:09 / drwxr-xr-x 6 root root 4096 Sep 29 02:21 /home drwx------ 6 student student 4096 Sep 29 02:23 /home/student drwxr-xr-x 6 student student 4096 Sep 29 02:24 /home/student/www -rwxr--r-- 6 student student 369 Sep 29 02:27 /home/student/www/index.htmlа vbird oӱb(ݩstudents)_Ū index.html oɮשOH
M www P index.html OiH vbird ŪvAO]ؿcOѮڥؿ@h@hŪA
] vbird iiJ /home OoiiJ /home/student/ AJMsiJ /home/student \FA
MNŪ index.html FIҥHOyvbird|Ū index.html ezI
npקvOHunN /home/student vקאּ̤p 711 AΪ̪ 755 NiHoI oiOܭnI |
[root@www ~]# groupadd project <==W[ss [root@www ~]# useradd -G project alex <==إ alex bAB䴩 project [root@www ~]# useradd -G project arod <==إ arod bAB䴩 project [root@www ~]# id alex <==d\ alex bݩ uid=501(alex) gid=502(alex) groups=502(alex),501(project) <==T꦳䴩I [root@www ~]# id arod uid=502(arod) gid=503(arod) groups=503(arod),501(project) |
[root@www ~]# mkdir /srv/ahome [root@www ~]# ll -d /srv/ahome drwxr-xr-x 2 root root 4096 Sep 29 22:36 /srv/ahome |
[root@www ~]# chgrp project /srv/ahome [root@www ~]# chmod 770 /srv/ahome [root@www ~]# ll -d /srv/ahome drwxrwx--- 2 root project 4096 Sep 29 22:36 /srv/ahome # qWvGӬݡAѩ alex/arod 䴩 projectA]GSDFI |
[root@www ~]# su - alex <== alex ӳBz [alex@www ~]$ cd /srv/ahome <==sժu@ؿh [alex@www ahome]$ touch abcd <==إߤ@ӪŪɮץXӡI [alex@www ahome]$ exit <==} alex [root@www ~]# su - arod [arod@www ~]$ cd /srv/ahome [arod@www ahome]$ ll abcd -rw-rw-r-- 1 alex alex 0 Sep 29 22:46 abcd # JӬݤ@UWɮסAѩsլO alex Aarodä䴩I # ] abcd oɮרӻA arod ӥuOLHAu r vӤwڡI [arod@www ahome]$ exit |
[root@www ~]# chmod 2770 /srv/ahome [root@www ~]# ll -d /srv/ahome drwxrws--- 2 root project 4096 Sep 29 22:46 /srv/ahome աGϥ alex hإߤ@ɮסAåBd\ɮvݬݡG [root@www ~]# su - alex [alex@www ~]$ cd /srv/ahome [alex@www ahome]$ touch 1234 [alex@www ahome]$ ll 1234 -rw-rw-r-- 1 alex project 0 Sep 29 22:53 1234 # SIo~Oڭ̭nˤlI{b alex, arod إߪsɮשݸsճO projectA # ѩHݩsաA[W umask O 002Ao˨H~iHۭק𫍧ɮסI |