Windows 到 Linux 之旅:第 4 部分. 使用者管理(轉)
Windows 到 Linux 之旅:第 4 部分. 使用者管理(轉)[@more@]密碼、組和它們的映像級別:初級Chris Walden (cmwalden-at-us.ibm.com)電子商務架構師,IBM Developer Relations2004 年 1 月IBM 電子商務架構師 Chris Walden 將透過他在 developerWorks 上發表的九篇系列文章來指導您如何在 Linux 環境中運用您的 Windows 操作技巧。在本部分,我們使用 Webmin 介面和命令列新增、刪除使用者和組,並介紹了密碼和組檔案的映像。Linux 中的使用者管理與 Windows 中的使用者管理很相似,但又很不相同。兩個系統都是多使用者系統,基於使用者身份來控制他們對資源的訪問。兩個作業系統都允許將使用者分組管理以簡化訪問控制,以避免為眾多使用者分別設定許可權。不過,相同之處也僅此而已。超級使用者在 Linux 中,超級使用者稱為 root。root 使用者可以控制所有的程式,訪問所有檔案,使用系統上的所有功能。對 root 使用者來說沒有不可以做的事情。就管理的角度而言,root 的許可權是至高無上的。所以,root 帳號一定要透過安全的密碼保護起來,這一點非常重要。您不應該使用 root 身份來處理日常的事務。其他使用者也可以被賦予 root 特權,但一定要謹慎行事。通常您可以配置一些特定的程式由某些使用者以 root 身份去執行,而不必賦予他們 root 許可權。建立新使用者可以透過命令列或者 Webmin 等工具來建立新使用者。新增使用者的命令是 useradd。例如,從控制檯中建立一個新使用者:useradd -c "normal user" -d /home/userid -g users-G webadm,helpdesk -s /bin/bash userid這個命令建立了一個名為“userid”(命令的最後一個引數)的新使用者。“normal user”是對這個使用者的註釋。userid 的主目錄將是“/home/userid”。userid 的主組將是 users,但他也被加入到“webadm”和“helpdesk”這兩個組。userid 將使用“/bin/bash”shell 作為他的常規控制檯環境。使用 Webmin 建立新使用者簡單而且直觀。使用您喜歡的瀏覽器登入到 Webmin,切換到 System 窗體。選擇“Users and Groups”工具,然後點選 Create a new user。圖 1. Webmin 的 Create User 螢幕[myimg]upload/webmincreateuser2.png[/myimg]填寫好使用者的詳細資訊,然後點選 Create。使用者建立完成。用 GUI 工具新增使用者在“Basic tasks for new Linux developers”一文中也討論了。修改密碼可以從控制檯使用 passwd 命令來修改使用者的密碼:passwd userid只有 root 使用者可以用 passwd 修改其他使用者的密碼。輸入完命令後,系統將提示您輸入並確認您要設定的密碼。如果兩次輸入一致,使用者的標識就會更新,密碼修改成功。從控制檯輸入 passwd,使用者可以修改自己的密碼;在這種情況下,系統會向使用者詢問原來的密碼,驗證透過後才可以輸入新密碼。大多數的 Linux 發行版本安裝時都會啟用 password cracker 模組,用於修改密碼。這個模組將檢查密碼是否遵循了良好的密碼設定習慣。如果使用者使用了不安全的密碼,它將自動警告使用者。您可以將系統配置為要求使用者必須使用安全的密碼。root 在設定不安全的密碼時也會被警告,但是仍然可以設定成功。在 Webmin 中,可以使用 System 窗體中的“Change Passwords”模組來修改密碼。在列表中選擇一個使用者,然後在空白處輸入新密碼。刪除使用者可以從控制檯使用 userdel 命令來刪除使用者。userdel -r userid使用可選的 -r 開關可以將使用者的主目錄及所有相關資訊全部刪除。如果想要保留使用者主目錄,那麼不要使用 -r 開關。這個開關不會自動刪除系統中所有屬於這個使用者的檔案,只是刪除他的主目錄。如何組織使用者Linux 的配置是基於文字的。Linux 中的所有使用者都存放於 /etc/passwd 檔案中。您可以使用 more 命令來分頁檢視這個檔案:more /etc/passwd/etc 目錄不要忘記,Linux 的大多數配置檔案都是在 /etc 目錄下。這個檔案的結構非常直觀。每一行是一個新使用者,引數用冒號隔開。userid:x:75000:75000::/home/userid:/bin/bash第一列是使用者名稱。第二列是使用者的密碼。第三列是使用者的數字 ID。第四列是使用者的主組的 ID。第五列是使用者的全名,或者是註釋。第六列是使用者主目錄的位置,這個目錄通常位於 /home 目錄下,目錄名與使用者 ID 相同。第七列是使用者的預設控制檯 shell。Password 檔案結構Login ID Password User ID Group ID Comment Home directory Default shelluserid x 75000 75000 /home/userid /bin/bash注意上面的例子中 Password 列是一個“x”。這並不是說使用者的密碼是“x”。以前密碼曾經是以平文字的形式儲存在這個檔案中。現在也還有這樣的配置,但由於密碼容易洩露,已經很少有人再這樣做了。解決的方法是建立 shadow password。在 /etc/passwd 檔案中存放密碼的位置只是存放一個“x”,而經過加密的密碼存放於 /etc/shadow 檔案中。這項技術透過將使用者資訊與密碼資料分離而提高了安全性。MD5 密碼加密演算法支援更為可靠的密碼,從而進一步提高了安全性。一個映像密碼條目的樣例如下所示:映像密碼和使用者許可權Linux 使用者管理的特點之一在於它沿襲了 UNIX 風格,使用 passwd 檔案。登入的使用者必須可以讀取 /etc/passwd 檔案,以判斷他的使用者名稱是否存在。如果將使用者名稱和密碼存放在同一個檔案中,潛在的攻擊者就可能獲得密碼;他們可以下載 /etc/passwd 檔案,然後以暴力破解的方法獲得密碼。映像檔案不必所有人都可讀,這樣攻擊者將不能獲得任何形式的密碼。這種方法還是不最好的,因為攻擊還是可以得到 一些 使用者資訊。更好的方法是將使用者儲存於一個單獨的地方,比如使用 LDAP。userid:$1$z2NXZR19$PZpyL84DmPKBXMeURaXXM.:12138:0:186:7:::所有的映像密碼過程都是在後臺進行,您只需要啟用這項功能,別的什麼都不用去做。組Linux 中的組與 Windows 中的組很類似。您可以建立一個組,然後將成員新增到這個組的列表中。可以以組為單位來分配資源。隸屬於同一個組的成員可以訪問同一資源。使用控制檯命令 groupadd 建立組很簡單:groupadd mygroup這將建立一個名為“newgroup”的沒有任何成員的組。組存放於 /etc/group 檔案中。每一個組由單獨的一行列出,如下所示:mygroup:x:527:第一列是組的名字。第二列是一個密碼。同樣,“x”說明真正的密碼存放在 /etc/gshadow 映像檔案中。第三列是組的一個數字索引。在第三列之後將是以逗號隔開的組的成員的使用者 ID。可以使用 gpasswd 命令向組中新增成員,要使用 -a 開關,後面跟要新增的使用者名稱:gpasswd -a userid mygroup刪除組的成員還是使用這個命令,不過使用的開關是 -d 而不是 -a:gpasswd -d userid mygroup也可以透過直接編輯 /etc/group 檔案來對組進行修改。編輯 passwd 檔案時要當心直接編輯 /etc/passwd 檔案和 /etc/group 檔案的真正危險在於有可能偶然失誤而造成 ID 編號的重複。所有的資源都透過 ID 編號而不是使用者或組的名字來確定使用者的身份。如果您不小心造成了 ID 編號的重複,那麼可能會有一些意想不到的事情發生。例如,如果您將一個使用者的 ID 編號設定為 0 (root 使用者的 ID),那個使用者的身份將是 root!。另外,如果您在檔案中刪除了使用者行或者組行,那麼對應的使用者或組也就被刪掉了。這些都是人為的錯誤。使用工具可以避免這些錯誤。不過,有時直接去編輯 /etc/group 檔案是解決問題最快捷的途徑。您一定要記住,當您在編輯那些檔案時,您管理的是實際的權力。一定要小心。在 Webmin 中,可以使用前面用到的管理使用者的工具來建立、編輯、除去組。使用者和組的關聯雖然在這裡我們不能詳盡地論述訪問控制,不過您應該對使用者和組對檔案的訪問許可權有初步的瞭解。如果您以長格式列出一個目錄下的檔案,您看到的將如下顯示。-rw-r--r-- 1 userid mygroup 703 Jun 23 22:12 myfile現在暫時忽略其他的列,只去看第三、四和最後一列。第三列是檔案主人的名字,userid。第四列是關聯到這個檔案的組,mygroup。最後一列是檔名。每個檔案只能屬於一個主人和一個組。可以為不能歸於這兩類的其他使用者 (Other)設定許可權。可以認為 Other 相當於 Windows 中的 Everyone 組。一個檔案只能屬於一個主人,這在作業系統中很常見,但是,檔案只能屬於一個組,初次使用這一規則的管理員可能會覺得受到了限制。事實並不如此。由於使用者可以同時是多個組的成員,所以只需要建立新的組就可以安全使用資源。在 Linux 中,往往是基於所需要的資源訪問許可權而不是根據業務單位來定義組。如果系統的資源邏輯上是有組織的,那麼可以建立更多的組來更好地控制對資源的訪問。在本文最後的 參考資料 部分,您可以找到關於關聯使用者和組的更多詳細資料。檢視 man chmod 可以獲得如何改變檔案許可權的詳細資訊。結束語在 Linux 中管理使用者和組的方式與 Windows 中本質上是相同的,但是 Linux 中只能有惟一的組可以關聯到一個系統資源。應該這樣認識 Linux 中的組管理:不要吝惜對組的使用,在複雜的環境中,不要害怕建立很多組。應該根據資源訪問許可權而不是基於業務單位去建立組。使用者和組資訊分別儲存在 /etc/passwd 檔案和 /etc/group 檔案中。您的系統可能還會有 /etc/shadow 和 /etc/gshadow 檔案,它們儲存的是為了安全而經過加密的密碼。直接編輯這些檔案來管理使用者和組不是不可以,但您一定要謹慎行事。所有的使用者和組的管理都可以在控制檯中完成,可以寫成指令碼。也可以使用 Webmin 等工具以圖形化的方式管理使用者和組。參考資料* 閱讀 Windows 到 Linux 之旅系列文章 的其他部分(developerWorks, 2003 年 11 月)。* The Linux System Administrator's Guid, Chapter 11. Managing user accounts 雖然是一份比較老的文件,但是仍值得一讀,因為管理使用者和組的技術是通用的。這份指南將幫助您深入學習 Linux 中基於控制檯的管理。* Linux Headquarters 站點給出了關於很多主題的基本教程和提示。那些標籤往往是“我已經安裝了 Linux ... 現在該怎麼辦???”您可能會對 這些教程 很感興趣。* Linux Documentation Project 也提供了一個 分類的 HOWTO 列表,來幫助您快速方便地找到適當的文件。* 在“針對 Linux 開發新手的基本任務”中也對使用 GUI 系統工具新增使用者進行了介紹。* developerWorks 教程“LPI certification 101 exam prep, Part 3: Intermediate administration”中也涉及了使用者管理方面的內容。* IBM Directory Server 實現了輕量目錄訪問協議(Lightweight Directory Access Protocol , LDAP),用於訪問目錄服務,尤其是那些基於 X.500 的目錄服務。 更多細節請閱讀“使用 IBM Directory Server 進行 Linux 使用者驗證”。* Linux Documentation Project 的 Introduction to Linux 指南的 第 3 章中講述了檔案許可權和安全。* 閱讀更多 Users and Logins 資料,請參考 Linux Unleashed (Macmillan Computer Publishing,1998 年)的相關章節,以及 The Official Red Hat Linux System Administration Primer(Red Hat, 2002 年)的 Managing Accounts and Groups。* Maryland 大學共享了他們的關於 安全密碼的選擇 的思路與技巧。* Red Hat Linux Manual 文件中有關於使用 Shadow passwd file 的詳細資料。* Linux Shadow Password HOWTO 介紹了映像系統的背景歷史和相關資料,以及面向實現的循序漸進的指南。* 系統安全是一個廣泛而複雜的主題,但是在網際網路的世界中,它會影響到每一個人。幸運的是,只要開始意識到這個問題,就不算晚。以下兩篇文章將對您有所幫助,一篇是 Adding Security to Common Linux Distributions,另一篇是 Strategies for Keeping a Secure Server (來自於以前引用過的 Linux Administration Made Easy 指南的第 12 章)。* IBM developerWorks 文章“Addressing security issues in Linux”將帶您開始實現初步的安全。* “Linux 使用者技術 FAQ” (developerWorks, 2001 年 7 月)也可以幫助您順利地從 Windows 過渡到 Linux。* 要開始在 Linux 上使用 IBM 的軟體產品,為您的 Linux 應用開發加油提速 將為您提供最好的參考資料。您可以找到關於 DB2、Lotus Domino、WebSphere Application Server、WebSphere Studio 等多種應用軟體的安裝提示和參考資料。您還可以登入獲得免費的 Linux Software Evaluation Kit,裡面有試用軟體和培訓資料。* 在 developerWorks Linux 專區可以找到更多 為 Linux 開發者準備的參考資料。關於作者Chris Walden 是位於德克薩斯州奧斯汀的 IBM Developer Relations Technical Consulting(也稱為 dragonslayers)的一名電子商務架構師,該公司為 IBM 商業夥伴提供教育、實現和諮詢。他致力於 Linux 相關工作,一有機會就向身邊的人宣傳 Linux 的種種好處。除了完成他的架構師的職責之外,他還精通 Linux 基礎設施伺服器的各個領域,包括混合平臺使用者環境下的檔案、列印以及其他應用服務等。Chris 有 10 年的計算機行業經驗,從現場支援到 Web 應用開發和顧問,各個領域他都曾涉足。您可以透過 cmwalden-at-us.ibm.com 與 Chris 聯絡
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-940046/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 教你玩轉Linux—使用者組的管理Linux
- 從Windows到LinuxWindowsLinux
- Windows Server 2008伺服器管理新技巧6則第2/4頁WindowsServer伺服器
- Linux使用者管理Linux
- linux程式全解-3.4.linux應用程式設計和網路程式設計第4部分Linux程式設計
- Linux 探索之旅 | 第四部分測試題Linux
- Linux 探索之旅 | 第二部分測試題Linux
- Linux-Windows 埠轉發LinuxWindows
- 《父與子的程式設計之旅(第3版)》第4章習題答案程式設計
- Linux 探索之旅 | 第二部分第五課:使用者和許可權,有權就任性Linux
- csdn第4名靠轉載上位
- Linux 使用者和使用者組管理Linux
- Java反應式事件溯源之第 4 部分:控制器Java事件
- windows共享到linux系統檔案WindowsLinux
- Linux與Windows共享檔案Samba(轉)LinuxWindowsSamba
- linux 禁止普通使用者su到root使用者Linux
- windows/linux下nvm管理nodeJS切換WindowsLinuxNodeJS
- Webpack 系列第 3 部分Web
- linux使用者管理基本命令Linux
- Linux使用者提權管理方案Linux
- Linux學習之旅Linux
- Linux系統管理命令二(轉)Linux
- (四)Linux之使用者管理(使用者和使用者組)Linux
- 教你玩轉Linux—新增批量使用者Linux
- 在Go中構建區塊鏈 第4部分:交易1Go區塊鏈
- 『學了就忘』Linux使用者管理 — 51、使用者管理相關命令Linux
- Linux命令整理,使用者管理,使用者組管理,系統管理,目錄管理常用命令Linux
- Linux系統使用者組的管理Linux
- Linux下使用者和組的管理Linux
- Linux使用者、組、許可權管理Linux
- Linux 筆記分享七:使用者管理Linux筆記
- hadoop之旅4-centerOS7: hadoop配置yarn資源管理器HadoopROSYarn
- Linux 探索之旅 | 第四部分第二課:SSH 連線,安全快捷Linux
- 如何從 Windows 上用 SSH 連線到 LinuxWindowsLinux
- 『學了就忘』Linux使用者管理 — 52、使用者組管理相關命令Linux
- 韓國政府:放棄Windows 7,轉投LinuxWindowsLinux
- Linux系統使用者賬號的管理Linux
- linux使用者和組管理常見命令Linux
- Linux常用命令速查-使用者管理Linux