wA@As峹аѦo

bĤڭ̻{ѤFLinuxtΤUɮvHΥؿtmC boӳ`Aڭ̴NӶi@Bާ@P޲zɮ׻PؿaI]AbPؿܴB إ߻PRؿBإ߻PRɮסA٦MɮסBd\ɮפeA |boӳ`@²檺аڡI

1. ؿP|
@@1.1 ۹|P|
@@1.2 ؿާ@G cd, pwd, mkdir, rmdir
@@1.3 ɸ|ܼơG $PATH
2. ɮ׻Pؿ޲z
@@2.1 ɮ׻Pؿ˵G ls
@@2.2 ƻsBRPG cp, rm, mv
@@2.3 o|ɮצWٻPؿW
3. ɮפed\G
@@3.1 ˵ɮפeG cat, tac, nl
@@3.2 i½˵G more, less
@@3.3 ^G head, tail
@@3.4 D¤rɡG od
@@3.5 קɮ׮ɶPظmsɡG touch
4. ɮ׻Pؿw]vPv
@@4.1 ɮ׹w]vGumask
@@4.2 ɮݩʡG chattr, lsattr
@@4.4 ɮׯSvGSUID, SGID, SBIT, v]w
@@4.3 [ɮGfile
5. OPɮתjMG
@@5.1 OɦWjMGwhich
@@5.2 ɮɦWjMGwhereis, locate, find
6. nIvPOYG
7. I^U
8. D
9. ѦҸƻP\Ū
10. w糧媺ijGhttp://phorum.vbird.org/viewtopic.php?t=23879

ؿP|G

ѲĤ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


۹|P|G

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ӥؿObF򪺡AҦ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|T׭nnzC @ӻ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 ^_^


ؿާ@G

ڭ̤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/test1A򭺥n /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


ɸ|ܼơG $PATH

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{L׬Oroot٬Ovbird/bin oӥؿbPATHܼƤAҥHMNbalsӧ/bin/lsoI

ڭ̥δXӽdҨAAѤ@UAPATHO򭫭nء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)
[root@www ~]# mv /bin/ls /root
# mv ʡAiNɮצbPؿi沾ʧ@~
(1)UӤקAbӥؿUJPlsOASkQlsFI ]NOAAઽJlsӰA]/rootoӥؿäbPATHwؿA ҥHAYϧAb/rootؿUA]jMlsoӫOI

(2)]olsTsb/rootUAäOQRFIҥHڭ̥iHzLϥε|Ϊ̬O۹|woӰɦWA UӤklsoӫOG
[root@www ~]# /root/ls  <==ε|wɦW
[root@www ~]# ./ls      <==]b /root ؿUAN./lsӫw
(3)pGQnrootbؿi/rootUlsANN/root[JPATHYiC [Jk²ANUoˡG
[root@www ~]# PATH="$PATH":/root
Woӧ@kNN/root[JɷjM|PATHFI۫HܽбzۦϥΡyecho $PATHzhdݧaI pGTwoӨDiSDFAбNlsh^/binUAMtη|II
[root@www ~]# mv /root/ls /bin

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СzvN󰪤FI

ҥHAFw_AijNy.z[JPATHjMؿC

ӥѤWXӨDڭ̤]iHDXƱG

PATHԲӪyܼơzAڭ̷|bĤTgbash shellԲӻI


ɮ׻Pؿ޲zG

ͤFͥؿP|AAӰQפ@Uɮת@ǰ򥻺޲zaIɮ׻Pؿ޲zWA~GyݩʡzB yzByRɮסzΡyɮשΥؿzAѩɮ׻Pؿ޲zb Linux OܭnA רOCӤHۤvaؿƤ]ݭn`N޲zIҥHڭ̨ӽͤ@ͦɮ׻Pؿ@ǰ¦޲zaI


ɮ׻Pؿ˵G ls
[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|bb޲zI)
-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


ƻsBRPʡG cp, rm, mv

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Ӱƻsm߻P[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ɮ׶i׭qʧ@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
[vbird@www ~]$ cp -a /var/log/wtmp /tmp/vbird_wtmp
[vbird@www ~]$ ls -l /var/log/wtmp /tmp/vbird_wtmp
-rw-rw-r-- 1 vbird vbird 96384  9 24 11:54 /tmp/vbird_wtmp
-rw-rw-r-- 1 root  utmp  96384  9 24 11:54 /var/log/wtmp
ѩvbirdäHNקɮת֦̻PsաA]MƻswtmpvPɶݩʡA OP̡֦BsլA쥻vbirdLki檺ʧ@AYϥ[W -a ﶵA]OLkFƻsvI

`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ڭ̦beN͹LAɦW̦nnϥ "-" }YA ] "-" ᭱OﶵA]AªϥΡy rm -aaa- ztΪON|~PաI pGϥΫ᭱|ͨ쪺WܪkɡA٬O|XDIҥHAu׹LrO "-" 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 jNApGؼɮפ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


o|ɮצWٻPؿW

ڭ̫eЪɦW (]tؿWٻPɮצW) AɦW̪iHF 4096 ӦrC A򪾹DӬ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

ɮפed\G

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


˵ɮפe

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̴NOFC򥻤WAb@몺Ҥ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@ɮתes򪺦LXbù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ӦnFI򻡩OHԲӪݤ@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


i½˵

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ʡA򻡩OHb 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


D¤rɡG od

ڭ̤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


קɮ׮ɶΫظmsɡG touch

ڭ̦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

ܩYDZpUAѩBIOS]w~AɭPtήɶ]쥼ӮɶAåBASإߤFYɮסC ANɶ^TɶɡAɮפNܦӦۥӤFH^_^
[root@www ~]# touch [-acdmt] ɮ
ﶵPѼơG
-a  Gȭ׭q access timeF
-c  GȭקɮתɶAYɮפsbhإ߷sɮסF
-d  G᭱iH׭qӤΥثeA]iHϥ --date="ήɶ"
-m  Gȭק mtime F
-t  G᭱iH׭qɶӤΥث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ڭ̥iH׭qɮת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


ɮ׻Pؿw]vPv

Ĥ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
קݩʡG chown dmtsai:users ~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
קݩʡG chown -R dmtsai:users /tmp/chapter7_1
קvG chmod -R 755 /tmp/chapter7_1

bWoӨDApGAD 755 ӤƬOpXӪAAӹv@w{תFC pGAD 755 ӪH...֦^he@ݬ chmod ӫOгڡIoܭnIAonMAѨ~_hNi椣Uho ]Av{ѪthFA򩳤Uڭ̴Nnӽͤ@͡AysW@ɮשΥؿɡAw]vOHzoijDI


ɮ׹w]vGumask

OKI{bڭ̪DpإߩΪ̬Oܤ@ӥؿɮתݩʤFALA ADAإߤ@sɮשΥؿɡALw]v|OܡHINP umask oӪN঳FI umask ObdOH򥻤WA 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]ȻݭnvIz] 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

۫HܡHڭ̴NӴլݬݧaI
[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--
ؿG (drwxrwxrwx) - (d-------wx) = drwxrwxr--

umask Pvp觋AЬѳwϥΤGi쪺觋Ӷi AND P NOT pA LA٬OwϥβŸ觋ӭppQWe@I

OAyΪ̬O BBS WB͡Awϥɮ׹w]ݩ 666 Pؿw]ݩ 777 ӻP umask i۴poOnIHWDӬݡA pGϥιw]ݩʬۥ[AhɮܦG666-003=663AYO -rw-rw--wx AoiO諸I QQݡA쥻ɮ״Nwgh x w]ݩʤFAiM_XӤFH ҥHAoӦaonSOp߳I

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


ɮݩʡG

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ϺСCot׸CqU
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


ɮׯSvG SUID, SGID, SBIT

ڭ̫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\OOH򥻤WSUIDo˪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

  1. vbird /usr/bin/passwd oӵ{ӻO㦳 x vA vbird passwdF
  2. passwd ֦̬O root oӱbF
  3. vbird passwd L{A|yȮɡzo root vF
  4. /etc/shadow NiHQ vbird Ұ檺 passwd ҭקC

pG vbird ϥ cat hŪ /etc/shadow ɡALŪܡH] cat 㦳 SUID vAҥH vbird ycat /etc/shadowz ɡAOŪ /etc/shadow Cڭ̥Τ@iܷNϨӻpUG

SUID{檺L{ܷN
4.4.1BSUID{檺L{ܷN

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

  1. H root nJtΡAåBiJ /tmp F
  2. touch testAåB test v 777 F
  3. H@ϥΪ̵nJAöiJ /tmpF
  4. էR test oɮסI

ѩ 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ŪzI򻡡H 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

[ɮGfile

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


OPɮתjMG

ɮתjMiNF`FI]ڭ̱``ݭnDɮשb̡A~ɮ׶i@ǭקκ@ʧ@C ǮɭԬYdzn]wɪɦWOܪAOU distribution mؿhPC ɴNonQΤ@ǷjMONӳ]wɪɦWXӡAoˤ~קIzOaI^_^


OɦWjMG

ڭ̪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


ɮɦWjMG

Aӽͤ@ͫjMɮקaIb Linux U]۷ujMOIq` find ܱ`ΪI]t׺C~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

find ɶѼƷNq
5.2.1Bfind ɶѼƷNq

Ϥ̥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
                oOi઺IboӮɭԡ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

find B~ʧ@
5.2.2Bfind B~ʧ@

ӽ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


nIvPOYG

ڭ̪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
  • dir1 Gܤֻݭn x vF
  • file1Gܤֻݭn r vF
  • dir2 Gܤֻݭn w, x vC

DG
@ɮץW /home/student/www/index.html AUɮ/ؿvpUG
drwxr-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
G
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ҥH׬Oyvbird|Ū index.html ezI

npקvOHunN /home/student vקאּ̤p 711 AΪ̪ 755 NiHoI oiOܭnI

I^U

DG
( nݵ׽бNƹʨyGzUťճBAUťճBYi )

ҼD@G]tΤӱbAOO alex P arod AoӤHFۤvsդ~٦@P䴩@ӦW project sաC]oӥΤݭn@P֦ /srv/ahome/ ؿ}ovABӥؿ\LHiJd\C аݸӥؿv]wHХHDzvAAH SGID \ѪRC
ڭ̱ons@XoӱbơAb/sժ޲zbڭ̷|СA zo̥ӵ۩UOӻs@YiG
[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)
M}lӸѨMڭ̩һݭnҧaI
  1. إߩһݭn}oMץؿG
    [root@www ~]# mkdir /srv/ahome
    [root@www ~]# ll -d /srv/ahome
    drwxr-xr-x 2 root root 4096 Sep 29 22:36 /srv/ahome
    
  2. qWXGio{ alex P arod bӥؿإɮסA]ݭnivPݩʪקC ѩLHiiJؿA]ӥؿsprojectAv770~XzC
    [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
    
  3. ڤOHӨϥΪ̨ӴլݬݡAp|OpH alex إɮסAM arod hBzݬݡC
    [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
    
    ѤWGڭ̥iHDAY¨ϥζDzΪ rwx ӤwAh alex إߪ abcd oɮרӻA arod iHRLAOosLIoOڭ̭nˤlڡIӭsW@UC

  4. [J SGID vb̭AöiլݬݡG
    [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
    
    ҥH̲תGܡAؿv̦nOy2770zAɮ׾֦ݩrootYiAܩsեnH@P䴩project oӸsդ~I

²DG

ѦҸƻP\Ū

2002/06/26GĤ@ 2003/02/06GssƻP[J FAQ
2003/02/07G[J basename P dirname
2004/03/15GNsɪeʦܤU@`GLinux ϺлPw޲z
2005/07/19GNª峹ʨ o FC
2005/07/20GIIIneڡbQ䭷쪺CAשgoөNN
2005/07/21Gb find AhW[FdҤEAHQɮפjp (size) jM\C
2005/07/25Gb SUID/SGID/SBIT A̾ netman P p{ SijAקFԭzI
2006/04/09Gb rmdir dҤA֤F@ -p ѼơI
2006/06/15GgѰQװϺ dm421 qAo{ chattr d gFAwqC
2006/08/22GW[ rm @²檺IרOy rm ./-aaa- zRkI
2008/09/23GNwFC4gƲB
2008/09/29G[JvPOY@`A÷sWҼDسIja@UI
2009/08/18G[JŸk觋ӳBz SUID/SGID/SBIT oI
2009/08/26GPºͧiDAX /etc Ueqj 50k DAϥ -type f ls -ld קKؿܡI