【旗標技術通訊電子報】第96期 2001.3.2 ***************************************************************** ※本期書摘:了解具特權與不具特權使用者的差異 ※下期書摘:了解 /etc/passwd 檔 (上) ***************************************************************** ※書展訊息 2/26 起 旗標全省迎春特賣 85 折 時代在進步,為自己選本流行必備的電腦書可是項必要的投資! 包括 Windows、office、linux、DIY、影像處理、進階系列..等熱門書種, 快用超低預算擁有電腦新知,買書送精緻便條紙,送完為止! 全省特賣地點包含了連鎖書店系統與您住家附近的書店, 不論您在台灣的哪一邊,都能享受到旗標 85 折的特惠折扣! 全省特賣據點 http://www.flag.com.tw/book.htm 旗標圖書目錄 http://www.flag.com.tw/product_info/ ***************************************************************** ※本期書摘:了解具特權與不具特權使用者的差異 ***************************************************************** 每一個 Linux 系統的使用者都會擁有一個使用者身分識別碼 (UID) , 在 使用 Caldera 版的 OpenLinux 時, 系統指定給新增使用者的 UID 通常 會從 500 開始往上遞增, 最大可以到 65534, 而 500 以下的 UID 則是 保留給系統的特別帳號使用。其它的 Linux 版本可能會有些微不同, 像 是一般使用者的 UID 有可能是從 1000 開始起用, 而非由 500 起跳。然 而這些 UID 數字的選用方式, 可隨著管理者的決策任意選定。 雖然 500 以下的系統帳號並沒有什麼特別之處 (事實上從 1 到 65534 的 所有 UID 都沒有特殊的重要性, 把 500 以下的數字保留給系統帳號只不 過是一個習慣罷了), 不過這種做法可以保證當 Linux 系統提供者 (像是 Caldera Systems) 為了某些特殊需求, 而必須使用這些號碼時, 能夠順利 的採用。在 Linux 下, 經常會有一些程式需要具備完整權限的特別使用者 帳號, 以便對所有相關檔案進行存取, 如此才能夠正確的運作, 此時這些 500 以下的 UID 就可用來滿足這類要求。這種情形常最常見的就是在一些 資料庫程式上。 Linux 系統上可以使用的 UID 號碼從 0 到 65535, 一共有 65536 個。其 中 UID 0 是一個非常特別的使用者識別碼。在 Linux 系統中, 任何以 UID 0 來啟動的行程、或是任何具有 UID 0 的使用者都擁有無上的特權, 這表示 UID 為 0 的使用者或行程可以掌握所有權限去執行任何事。因此, 雖然「超級使用者」(root, UID 為 0) 這個帳號可以決定整個系統的生死, 但一般較具經驗或是優秀的系統管理者若非有絕對必要, 都不會以 root 的 身份來操作系統。 現在請觀察一下編號 65535 的 UID, 這個 UID 屬於 nobody 帳號。但是如 果稍微留意一下, 將可以發現 Caldera 版 OpenLinux 的 nobody 帳號其 UID 為 65534, 而非 65535。事實上, 65535 對系統來說是一個完全沒有權 限的使用者身分。現在, 請試著利用 useradd 指令增加一個 "noone" 帳號 : useradd -m noone -u 65535 當建立好這個新帳號與使用者目錄時, 首先請觀察它的使用者目錄, 您會發 現它的所有權並不是屬於 noone, 而是屬於 root (通常用 useradd 指令建 立的帳號會自動把所有權改為新建立的使用者, 在此顯然有點不同)。接著 如果用 su 指令切換到 noone 這個帳號, 將會發現無法建立或刪除任何檔 案, 這是因為 noone 並未擁有任何的權限。所以為了防止發生這些混亂情 況, 請避免使用 65535 這個 UID。這就是 Linux 系統使用 65534 作為 nobody 帳號的 UID, 而將 65535 保留不使用的原因 。在實際操作後請別 忘了刪除這個 noone 帳號以及它的家目錄, 如下所示: userdel noone;rm -Rf /home/noone 以前曾有個技倆, 亦即只要建立一個 UID 為 65536 的帳號, 便可以取得 root 的身分, 並且擁有 root 的權限。原因就在於如果您將 UID 的數字 轉成二進位來觀察, 那麼所有 UID 編號都是 0 與 1 所組合而成的 16 位 元值, 而 root 的 UID 是 0, 其所有的位元全部都是 0!相反的, UID 65535 的所有位元則全部都是 1 (為 1111111111111111 )。假設我們建立 一個 17 位元的二進位值UID ─ 10000000000000000, 會發生甚麼狀況呢 ?理論上, 有效值只到 16 位, 而多出來的那一位元會被忽略不算, 這麼一 來便會產生溢位 (overflow), 使 UID 的值跳回 0, 也就是說變成 root, 擁有超級使用者權限。幸好, 這是個舊的漏洞, 現在的 Linux 系統已經不 再允許使用者將 UID 設定為 65536。 您可以建立一些 UID 比 65536 還要大的帳號, 但除非您更換 /bin/login 程式, 否則還是不能使用這些 UID。 ****************************************************************** 以上內容摘自『Linux 網路安全百寶箱』 安人玉、江安中、黃子綱、廖伸豐 編譯 書號:F8828 定價:650 元 ****************************************************************** 想索取前幾期的電子報內容請至旗標網站下載 http://www.flag.com.tw/url/ 或在易達網也有可以下載喔 http://lib.edirect168.com/enews/enews.asp?CH=87 本電子報內容未經授權請勿轉載 版權所有人:旗標出版股份有限公司 好書能增進知識、提高學習效率 卓越的品質是旗標的信念與堅持 http://www.flag.com.tw ═<易達網電子報發報中心>═══════════════════ ˙欲訂閱或取消易達網電子報: http://www.edirect168.com/enewsv2/ ˙收報、退報有問題,請洽易達網客服信箱: mailto:cs@service.edirect168.com ˙歡迎申請易達網免費電子信箱: http://www.edirect168.com ˙易達網電子報發報中心: mailto:news@service.edirect168.com ˙您想要登廣告: http://www.edirect168.com/html/ad.htm ˙本電子報文章與其相關連結由電子報報主提供,易達網負責發送。 ════════════════ 作自己的媒體,唱自己的歌 ══ |