3.2??????? 用戶,密碼,文件訪問權限和安全性
3.2.1? 主目錄, 根目錄和添加新用戶
?
對于一般用戶來說,主目錄(home directory)是硬盤上唯一可以原來寫東西的地方。一般的路徑名是/home/login_user_name。
主目錄用于存儲各種用戶文件:設置文件,程序配置文件,用戶文檔,數(shù)據(jù),netscape的緩存,郵件等等。作為一個普通用戶,你可以在主目錄下建立新的目錄安排你自己的目錄結構。其他用戶無法閱讀你的文件或者寫數(shù)據(jù)到你的主目錄,除非你給他們適當?shù)臋嘞蕖?/p>
除了自己的主目錄以內(nèi)的文件,一般用戶也可以看到,閱讀和執(zhí)行很多系統(tǒng)里的文件,但是一般來說他們不能修改和刪除這些文件。
root用戶(也叫“超級用戶”)是一個特殊的系統(tǒng)管理帳號,可以修改系統(tǒng)里的任何文件。經(jīng)常使用root用戶作為缺省的登錄用戶不是什么好習慣――你的誤操作將有可能導致嚴重后果。建議設置一個一般用戶給自己作為日常使用的帳號,只在必要使用root用戶的權限時才登陸到root用戶模式下。一般來說,root用戶是Linux初始化安裝后的唯一一個用戶。
使用root用戶建立一個普通用戶:
adduser joe
passwd joe
[輸入用戶秘密]
[再次輸入用戶秘密確認]
?
在上述的例子里,要求超級用戶root。以上命令在系統(tǒng)里產(chǎn)生一個joe的用戶,接著設置該用戶的密碼。現(xiàn)在,可以告訴joe他的用戶名和初始密碼,然后他可以登錄到系統(tǒng),然后修改他的密碼。還要注意的是,用戶名和密碼都是大小寫敏感。
?
超級用戶可以修改任何人的密碼,盡管他/她無法閱讀該用戶的密碼。用戶密碼采用單向加密算法,加密后僅僅在系統(tǒng)上儲存加密后的密碼,對于舊的系統(tǒng)一般存在/etc/passwd文件里,新的系統(tǒng)一般存在/etc/shadow文件里,未經(jīng)加密的密碼文件從來不被儲存在系統(tǒng)里。當用戶登錄的時候,系統(tǒng)把用戶的輸入密碼使用相同的加密算法得到的結果再和密碼文件(/etc/passwd或者/etc/shadow)里的結果相比較。
?
超級用戶和一般用戶的分開使得Linux系統(tǒng)更加安全――甚至讓病毒在Linux系統(tǒng)下很難有所作為(因為用戶運行的程序只能把數(shù)據(jù)寫到他/她自己的有讀寫權限的目錄里,不會感染整個操作系統(tǒng)的核心部分)。
?
一般建議用戶在第一次登錄到系統(tǒng)的時候立刻修改自己的密碼:
passwd
Changing password for joe
(current) UNIX password:?? [輸入舊的密碼]
New password:????????????? [輸入新的密碼]
Retype new password:?????? [重復輸入新的密碼]
passwd: all authentication tokens updated successfully.passwd
實際上,當你輸入密碼時,出于安全原因,鍵盤輸入并不會顯示在屏幕上。如果你是第一次修改密碼,看不到鍵盤輸入的結果可能會有點不適應。
在Linux里,同一個密碼可以用來:
?
·???????? 登錄到文本終端
·???????? 登錄到圖形用戶界面(GNOME或者KDE)
·???????? 取消鎖定的文本終端
·???????? 取消密碼保護的圖形用戶界面下的屏幕保護(GNOME或者KDE)
3.2.2? 密碼安全性
?
一個“脆弱”(指容易被破解)的密碼通常是安全問題的根源。即使在家里,完全有可能當你在瀏覽因特網(wǎng)的同時,黑客已經(jīng)攻破你的計算機,正在修改和刪除你計算機上的文件,或者通過你的計算機在本地警察局的網(wǎng)絡里做一些令人頭痛的事情。所以,即使在家里也要保證用戶密碼的安全。一旦有人登錄到你的計算機,即使是普通用戶,他也有可能找到其他方法獲得超級用戶的密碼。其實就看你管理計算機系統(tǒng)的能力和黑客破解能力的較量了。
以下是一些不好的密碼:
?根本沒有密碼?
?密碼就是“password”?
?密碼和登錄用戶名相同?
?你的名字,女兒的名字,兒子的名字,妻子的名字,丈夫的名字……或者任何一個親人的名字。人的名字其實非常的有限――只要查一下一些類似“如何給嬰兒取名”之類的書就可以了,不要以為你是印度來的就沒有人知道你的名字。?
?你的姓或者其他人的姓。姓的數(shù)量比名字更加有限!?
?你家小狗的昵稱,老婆的昵稱等等。昵稱的數(shù)量比姓更少!?
?你喜歡的體育俱樂部的名稱,節(jié)日名稱,牙膏的名稱等等。避免使用非常出名的足球隊的名稱,也不要用任何搖滾樂隊的名字?
?你的生日,社會保險號碼,等等。?
?公司,部門,小組的名稱?
?密碼寫在你的記事本上或者計算機殼子上?
?你在因特網(wǎng)聯(lián)機商店使用的密碼,電子郵件郵箱的密碼等?
?任何在字典里可以找到的單詞。英文字典其實沒有包含你想象中那么多的單詞(10萬個單詞?10萬個單詞的文件小于1MB!)。一個水平很一般的黑客很容易就加密所有的字典詞匯然后逐一和你的密碼比較。一個不可否認的事實,因特網(wǎng)上的確已經(jīng)存在用來制造 “字典攻擊”的現(xiàn)成工具。不信?試著找一個工具來破解你的密碼看看有多容易!?
?任何其他詞匯,姓,寵物或者成語,不管是哪一種語言。對于一個有經(jīng)驗的黑客來說,如果他已經(jīng)覆蓋了一種語言,稍微加工一下就可以很容易覆蓋其他常用的語言。有多少常用的語言?40個?黑客只需要把預先做好的幾個文件加到破解文件清單里就行了。?
?任何以上的密碼在前面或者后面加上一兩個數(shù)字或者字符?
一個好的密碼最少要6個字符,有些專家甚至建議最少要10個字符,包含字符(最好大小寫混合),數(shù)字和特殊字符(比如?,*,$,%,#),還要定期做修改(建議8到16周之間)。
不巧的是,越不好破解的密碼往往越難以記住。為了解決這個問題,我花了十分鐘發(fā)明了我自己的“密碼公式”。比如說,我總是以“@”字符作為密碼的開頭和結尾,然后使用兩個單詞并且用“!”把它們連接起來,每一個單詞的最后一個字符大寫,比如“@whitE!housE@”。看起來象一個不太好記的密碼,但是只要我記得自己的“密碼規(guī)則”,其實可以很容易記住這個密碼。當然,如果你是一個記憶的超級天才,你可以使用mkpasswd并且試著記住它 J。
系統(tǒng)管理員可以使用Linux自帶的工具來設置密碼的規(guī)則(密碼最小長度,是否要求特殊字符,密碼過期的期限等),以root用戶運行:
linuxconf
在菜單“user account”-“policies”-“password & account policies”設置。在以下場合里,一般的用戶不能設置一個密碼:
?當密碼長度太短?
?密碼是一個字典里的單詞?
?密碼中不包含數(shù)字或者特殊字符?
但是對于root用戶,可以設置任何密碼而只接收系統(tǒng)的警告信息。
還要保證任何包含你的密碼的文件(比如/root/.kde/share/config/kpprc)有正確,安全的權限設置,這樣才能保證你的密碼不會被其他人看到。舉個例子,你可能要運行命令:
chmod 600 kpprc
如果你使用電話線上網(wǎng),每周只用幾個小時,你的密碼太脆弱可能不會有什么大問題。但是如果你使用cable modem寬帶上網(wǎng),或者如果大部分時間你都呆在因特網(wǎng)上,你最好重新考慮一下你的系統(tǒng)安全。
有些計算機半文盲使用一些脆弱得讓人驚訝的密碼,根據(jù)CNN的相關報道,“大概有50%的計算機用戶基于家庭成員的名字,配偶的名字或者寵物的名字作為密碼。大概30%的計算機用戶基于流行音樂歌手的名字或者體育明星的名字作為密碼”。
http://www.cnn.com/2002/TECH/ptech/03/13/dangerous.passwords/index.html
特別要請注意的是:在以上“基礎密碼”后面加上一兩個數(shù)字并不會使密碼安全提高多少。
3.2.3? 忘記了超級用戶密碼怎么辦
盡管我從來不會忘記自己的密碼,但是我還是會仔細研究一下這個專題,以防將來有一天突然看到我的母親在閱讀我的ICQ聊天記錄時,可能會派上用場。
第一種辦法:
最容易解決“忘記密碼問題”的方法是將Linux重新啟動到單用戶模式,可以在“l(fā)ilo”的命令提示符下輸入:
linux single
這種辦法將使你變成root超級用戶而不需要輸入任何密碼。現(xiàn)在作為root用戶,你可以使用以下命令重新設置密碼(不需要輸入舊的密碼)
passwd
你可能覺得這實在是太不安全了!那是因為,如果有人可以物理上“訪問”你的計算機硬件,沒有計算機系統(tǒng)是安全的。但是,我并不喜歡在我的計算機上有這個“l(fā)inux single”的漏洞存在,所以我在文件/etc/lilo.conf里(在 “image=”段落的尾部)加上以下內(nèi)容就可以把這個漏洞拔除:
?
password=”my_password”
restricted
這個設置使得Linux啟動時,在lilo的命令提示符下,當用戶輸入linux帶任何參數(shù)時必須輸入正確的密碼。如果用戶不是使用命令行的啟動模式而使用正常的啟動模式,沒有密碼也能夠啟動系統(tǒng)。為了讓修改生效,必須重新運行l(wèi)ilo命令。因為我設置的密碼在lilo.conf文件里沒有加密,我還必須把文件/etc/lilo.conf改成只有root用戶可以讀寫:
chmod 600 /etc/lilo.conf
第二種辦法
另外一個解決“超級用戶密碼丟失”的辦法是使用Linux啟動盤或者安裝CD來啟動你的計算機。然后找到你計算機硬盤上的root分區(qū),使用mount命令掛載該分區(qū),接著修改文件/etc/shadow。因為當我從軟盤啟動Linux時,我可以不需要輸入任何密碼就成為root用戶。在密碼文件里,把root用戶的加密密碼刪除,所以root的密碼將是空的。
用戶帳號的信息儲存在以下純文本文件里:
?
/etc/passwd
/etc/shadow
?
文件/etc/passwd包含了我計算機上的所有用戶,并且很容易閱讀。文件每行包含一個帳號信息,總共包含六個“:”間隔符號(這意味著七個字段)。舉例如下
?
/etc/passwd文件例子
?
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
???????????????????????????????????????????????????????????????????????????????????????????
1
?root
?登錄用戶名
?
2
?x
?字符x
?
3
?0
?用戶標識
?
4
?0
?該用戶的優(yōu)先用戶組標識
?
5
?root
?注釋(比如用戶的全名)
?
6
?/root
?用戶的主目錄(HOME DIRECTORY)
?
7
?/bin/bash
?用戶的shell的名字
?
真正最重要的用戶信息其實儲存在文件/etc/shadow文件里。這個文件相對安全因為只有root用戶才能閱讀。在這個文件里,每行包含九個字段:
1
?登錄用戶名
?
2
?加密后的密碼
?
3
?從1970年1月1日到上一次修改密碼的天數(shù)
?
4
?距離下一次修改密碼的天數(shù)
?
5
?密碼定期作修改的天數(shù)
?
6
?密碼即將過期時提前通知用戶的天數(shù)
?
7
?密碼過期到用戶被取消的天數(shù)
?
8
?密碼被取消時距離1970年1月1日的天數(shù)
?
9
?預留字段
一些舊的Unix版本不包含/etc/shadow文件,而是把密碼存放在/etc/passwd每行中的第二個字段。這個字段在新的系統(tǒng)中只顯示一個“x”字符。
舉個例子,我的/etc/shadow文件中的root用戶看起來是這樣的:
root:$1$BuPbmLAz$1G7.evIChyqaEI0TlZp0F.:11071:0:99999:7:-1:-1:134540356
當密碼被消除后,看起來是這樣的:
root::11071:0:99999:7:-1:-1:134540356
?
現(xiàn)在,root用戶就沒有密碼了,所以我就可以重新啟動計算機,在login登錄提示下,輸入“root”,對于密碼提示只需要按回車鍵就可了(沒有密碼)。登錄成功后,可以立刻使用以下命令修改root密碼:
?
passwd
有個例外,盡管在/etc/shadow刪除了密碼,對于Debian的發(fā)行版本并不允許你按“無密碼”狀態(tài)登錄,在這種情況下,你需要做的是用其他用戶(密碼已經(jīng))的加密后的密碼取代root的密碼,然后使用該密碼重新登錄。
想給遠程用戶設置用戶帳號,用電子郵件發(fā)送加密密碼也是一個安全的辦法,“我正在幫你在我的計算機上設置ftp帳號,請把你的加密密碼用電子郵件發(fā)送給我”。等你收到加密密碼后,把它插入到/etc/shadow文件里。這樣,用戶就可以登錄了,因為只有她知道她的密碼,其他人不知道。
為了讓我的計算機沒有“軟盤訪問”功能有點難度,我喜歡在沒有軟驅(qū)的情況下運行計算機。不幸的是,Linux光盤現(xiàn)在是可以自啟動的。我在BIOS里設置啟動設備的順序以保證系統(tǒng)從硬盤啟動而不是軟驅(qū)或者光驅(qū),然后給BIOS設置加上密碼保護,這樣就沒有其他人能夠修改BIOS設置。但是,我還是很擔心BIOS的密碼很容易被破解,或者有人打開計算機蓋把BIOS的電池放電來重新設置BIOS。還可能有人把我的硬盤拿走然后在別的計算機上閱讀J 。所以,我正在考慮在我的計算機上安裝一個現(xiàn)在已經(jīng)有效的Linux“加密文件系統(tǒng)”,但是以其考慮這么多麻煩問題,我覺得還是干脆把計算機鎖在屋里才是一個真正的好辦法。這些聽起來頭很大吧?事實大概也是這樣的――這里我只是把一些計算機的安全問題稍微羅列了一下,即使在Linux下,如果黑客有潛在可能可以直接接觸你的計算機硬件,Linux也是不安全的。
3.2.4? 忘記了普通用戶密碼怎么辦
?
如果是普通用戶(非root用戶)忘記密碼,這個不是什么大問題,因為root可以修改任何人的密碼。舉個例子(要求root用戶)
passwd barbara
按回車鍵后,將提示輸入用戶barbara的新密碼(root用戶不需要知道舊的密碼)。如果一個普通用戶想要修改自己的密碼,該用戶會被要求輸入舊的密碼(這是一個安全特性,以避免當你離開你的坐位有人試圖修改你的密碼)。
3.2.5? 關閉或刪除一個用戶
?
用戶帳號可以被臨時關閉或者永久刪除
?
臨時關閉(鎖定)一個用戶帳號,并不需要修改該用戶的密碼。只需要在/etc/shadow文件里屬于該用戶的行的第二個字段(密碼)前面加上星號“*”就可以了。星號“*”指的是該用戶不允許登錄。當你想要把該用戶恢復正常,只需要把星號“*”去掉就可以了,用戶就可以恢復正常。
?
以下是一個在/etc/shadow關閉用戶peter的例子:
?
peter:*$1$narMEFm6$fhA1puOU422HiSL5aggLI/:11193:0:99999:7:-1:-1:134539228
我也可以使用以下命令來關閉用戶帳號:
passwd peter –l
使用以下命令重新釋放該用戶:
passwd peter –u
對于永久性(不可恢復)的刪除一個用戶帳號,我一般這樣做:
- 以root登錄
- 把我的用戶標識改成要刪除的那個用戶,檢查是否有新的重要的電子郵件:
su doomed_user_login_name
mail
logout
- 刪除用戶和用戶組:
?
userdel doomed_user_login_name
groupdel doomed_user_login_name
?
- 然后把該用戶從所屬的其他用戶組里面刪除:
usermod –G doomed_user_login_name doomed_user_login_name
- 強制刪除該用戶的主目錄和主目錄下的所有文件和子目錄:
rm –fr /home/doomed_user_login_name
3.2.6? 文件的所有權和訪問權
?
Linux(還有其他Unix)是一個安全,多用戶的操作系統(tǒng),同時,這也產(chǎn)生了文件訪問權限的復雜性。沒有設置好文件的訪問權限可能會導致一些莫名其妙的問題。充分了解文件的訪問權限是管理任何多用戶操作系統(tǒng)(Linux, Unix, Windows NT)的最重要環(huán)節(jié)。
我的建議是:學習Linux(或者其他Unix)的文件訪問權限的內(nèi)容,你從來不會為此感到后悔。
文件擁有者
每個文件(或者目錄)從屬于一個文件擁有者(一般是一個用戶名)和一個用戶組。文件擁有者一般來說就是生成(或者拷貝)這個文件的用戶。用戶組經(jīng)常包含一個用戶-文件擁有者。用戶組通常有一個名字來標識該用戶,但是也不是必須的。一個文件只能被文件擁有者刪除,或者是文件所屬的用戶組里的其他用戶,或者是root用戶。對于其他用戶,如果被賦于適當?shù)臋嘞蓿灿锌赡苄薷幕蛘邉h除該文件。文件所屬的用戶和用戶組可以通過命令ls –l(長文件名顯示格式)來顯示:
ls –l junk
屏幕輸出如下:
-rwx------ 1 yogin inca 27 Apr 24 14:12 junk
該文件屬于擁有者yogin和用戶組inca
文件的從屬可以通過命令chown(修改文件擁有者)和chgrp(修改用戶組),一般來說需要root用戶:
chown peter junk
chgrp peter junk
ls –l junk
執(zhí)行以上三條命令后,命令ls –l輸出如下:
-rwx------ 1 peter peter 27 Apr 25 20:27 junk
當你以root用戶身份為其他用戶刪除或者拷貝文件時,修改文件的從屬可能是經(jīng)常要做的事情,在做完文件的整理工作后,把文件的擁有者改成對應的用戶。
文件的權限
文件的擁有者可以把文件的訪問屬性設成三種不同的模式: 讀(r),寫(w)和運行(x)和三個不同的用戶級別: 文件擁有者(u),所屬的用戶組(g),系統(tǒng)里的其他用戶(o)。你可以檢查當前的文件訪問權限:
ls –l filename
如果文件對于三種不同的用戶都提供三種文件訪問模式,輸出結果看起來應該是:
-rwxrwxrwx
跳過第一個字符“-”(第一個字符顯示文件的類型, “-” 表示普通文件,“ d” 表示目錄文件,“ l” 表示鏈接文件,“c”表示字符設備,“b”表示塊設備,“p”表示命名管道比如FIFO文件(First In First Out, 先進先出),“ f”表示堆棧文件比如LIFO文件(Last In First Out,后進先出)。
第一個字符之后的第一個三位字符組表示對于文件擁有者對該文件的權限,第二個三位字符組表示文件用戶組對該文件的權限,第三個三位字符組表示系統(tǒng)其他用戶對該文件的權限。如果沒有權限,一般顯示“-”字符。
以下是一個顯示一個屬于root的文件用戶權限:該文件的擁有者root擁有所有權限,但是用戶組和其他用戶只能閱讀和執(zhí)行。
drwxr-xr-x 2 root root 21504 Apr 24 19:27 dev
第一個字符d顯示該文件是一個目錄。
你可以使用chmod命令來修改屬于你的文件的訪問權限。舉個例子,以下命令將把文件junk給所有用戶增加“只讀”權限。
Chmod a+r junk
在以上的命令,除了用“a”表示所有用戶(all),我還可以用“u”表示用戶(user),“g”表示用戶組(group),“o”表示其他用戶(other users)。除了加號“+”增加權限,我還可以使用減號“-”刪除權限,等于號“=”設置權限。除了“r”表示只讀權限(read),我還可以用“w”表示寫權限(write),“x”表示執(zhí)行權限(execute)。
第二個例子,以下命令將刪除其他用戶對junk文件的執(zhí)行權限:
chmod o-x junk
除了字符,也可以使用數(shù)字來設置權限。想知道是然后工作的,看以下例子:
?
execute=1
write=2
read=4
對于指定的三種不同用戶級別總結如下:
0 = 沒有任何權限 (不能讀,不能寫,不能執(zhí)行)???? (常見)
1 = 只能執(zhí)行??????????????????????????????????? (看起來不太正常)
2 = 只能寫????????????????????????????????????? (看起來不太正常)
3 = 只能寫和執(zhí)行??????????????????????????????? (看起來不太正常)
4 = 只讀?????????????????????????????????????? (常見)
5 = 只讀和執(zhí)行????????????????????????????????? (常見)
6 = 讀和寫????????????????????????????????????? (常見)
7 = 讀,寫和執(zhí)行??????????????????????????????? (常見)
要給三個不同的用戶級別設置訪問權限,只需要把三個數(shù)字粘在一起就可以了。舉例:
chmod 770 junk
將給文件擁有者和所屬用戶組所有權限(讀,寫和執(zhí)行),而對于其他用戶沒有任何權限。
chmod 666 junk
將給所有用戶(文件擁有者,所屬用戶組,其他用戶)讀寫權限,但是沒有執(zhí)行權限。請注意這個666權限設置里很經(jīng)常用到,有人認為這是整個Linux(或者其他Unix里)的精髓所在。
chmod 411 junk
將給文件擁有者以只讀權限,對于所屬用戶組和其他用戶只有執(zhí)行權限。這個看起來好像沒什么實際用處,但是對于北美的Linux用戶可能會感到很有趣,因為411電話號碼是他們用來獲得電話號碼查號幫助的。如果對于權限設置,你還能想出什么好主意,別忘了給我來電子郵件哦 (可能是007?)!
文件訪問權限的數(shù)字表示法叫做“八位組”因為是基于八進制的(我們的日常計數(shù)系統(tǒng)是基于十進制)。八進制有八個數(shù)值從0到7,最大數(shù)字是7。對應的,十進制有十個數(shù)字從0到9,最大數(shù)字是9。八進制表示法對于二進制的文件權限表示法的確非常方便,每一個標志都可以通過設置成0或者1來表示“允許”或者“不允許”,如以下的例子:
?
用戶級別:?????????????????? 文件擁有者???? 用戶組???????? 其他用戶
權限設置例子???????????????????? rwx???????????? rw-???????????? r--
缺省權限???????????????????????? ---???????????? --x -?????????? wx
權限的二進制表示法??????????????? 111???????????? 110???????????? 100
權限的八進制表示法??????????????? 7?????????????? 6?????????????? 4
目錄權限
目錄的訪問權限和一般文件的訪問權限是不同的。對于一般文件:
r????? =允許讀文件內(nèi)容
w????? =允許修改文件內(nèi)容
x????? =允許執(zhí)行該文件
對于目錄而言:
r????? =允許列出該目錄下的文件和子目錄
w????? =允許生成和刪除該目錄下的文件
x????? =允許訪問該目錄
使用umask設置缺省文件屬性
當一個文件生成時,系統(tǒng)給以文件缺省的文件權限。在我的系統(tǒng)里,缺省權限是:
-rw-r--r--
這意味著由該用戶生成的文件能被該用戶讀和寫,而用戶組和其他用戶只能讀。還有,在我的Redhat系統(tǒng)里,用戶不能讀取其他用戶的主目錄,因為用戶主目錄的缺省權限是
drwx------
我可以使用以下命令檢查我剛生成的文件的缺省權限:
?
umask -S
?
(可選項-S代表“符號”告訴umask按容易閱讀的格式顯示文件權限,而不是缺省的數(shù)字格式)
我可以修改新生成文件的缺省權限
umask u=rw,g=,o=
對于新生成的文件,以上命令將給文件擁有者以讀和寫的權限,而用戶組和其他用戶將沒有任何訪問權限。
在umask命令里使用數(shù)值來設置文件的缺省屬性更加麻煩。因為數(shù)值顯示的是從用戶那里去除掉的權限(剛好和chmod相反),比如:
umask 000
對于新生成的文件,你將給所有人所有的權限。下一個例子給文件擁有者以讀和寫的權限,而其他用戶沒有任何權限:
umask 177
為了讓設置對系統(tǒng)永久有效,在文件/etc/profile里修改對應的行。
?
posted on 2006-09-16 18:40
有貓相伴的日子 閱讀(4942)
評論(1) 編輯 收藏 所屬分類:
linux/unix應用