2004 年 1 月 01 日
IBM 電子商務(wù)架構(gòu)師 Chris Walden 將通過他在 developerWorks 上發(fā)表的九篇系列文章來指導您如何在 Linux 環(huán)境中運用您的 Windows 操作技巧,。在本部分,我們使用 Webmin 界面和命令行添加,、刪除用戶和組,,并介紹了密碼和組文件的映像。
Linux 中的用戶管理與 Windows 中的用戶管理很相似,,但又很不相同,。兩個系統(tǒng)都是多用戶系統(tǒng),,基于用戶身份來控制他們對資源的訪問。兩個操作系統(tǒng)都允許將用戶分組管理以簡化訪問控制,,以避免為眾多用戶分別設(shè)置權(quán)限,。不過,相同之處也僅此而已,。
超級用戶
在 Linux 中,超級用戶稱為 root,。root 用戶可以控制所有的程序,訪問所有文件,,使用系統(tǒng)上的所有功能,。對 root 用戶來說沒有不可以做的事情。就管理的角度而言,,root 的權(quán)限是至高無上的,。所以,root 賬號一定要通過安全的密碼保護起來,,這一點非常重要,。您不應(yīng)該使用 root 身份來處理日常的事務(wù)。
其他用戶也可以被賦予 root 特權(quán),,但一定要謹慎行事,。通常您可以配置一些特定的程序由某些用戶以 root 身份去運行,而不必賦予他們 root 權(quán)限,。
創(chuàng)建新用戶
可以通過命令行或者 Webmin 等工具來創(chuàng)建新用戶,。
添加用戶的命令是 useradd 。例如,,從控制臺中創(chuàng)建一個新用戶:
useradd -c "normal user" -d /home/userid -g users\
-G webadm,helpdesk -s\ /bin/bash userid
|
這個命令創(chuàng)建了一個名為“userid”(命令的最后一個參數(shù))的新用戶,。“normal user”是對這個用戶的注釋。userid 的主目錄將是“/home/userid”,。userid 的主組將是 users,,但他也被加入到“webadm”和“helpdesk”這兩個組。userid 將使用“/bin/bash”shell 作為他的常規(guī)控制臺環(huán)境,。
使用 Webmin 創(chuàng)建新用戶簡單而且直觀,。使用您喜歡的瀏覽器登錄到 Webmin,切換到 System 窗體,。選擇“Users and Groups”工具,,然后點擊 Create a new user。
圖 1. Webmin 的 Create User 屏幕
填寫好用戶的詳細信息,,然后點擊 Create,。用戶創(chuàng)建完成,。
用 GUI 工具添加用戶在“ 針對 Linux 開發(fā)新手的基本任務(wù)”一文中也討論了。
修改密碼
可以從控制臺使用 passwd 命令來修改用戶的密碼:
只有 root 用戶可以用 passwd 修改其他用戶的密碼,。輸入完命令后,,系統(tǒng)將提示您輸入并確認您要設(shè)置的密碼。如果兩次輸入一致,,用戶的標識就會更新,,密碼修改成功。從控制臺輸入 passwd ,,用戶可以修改自己的密碼,;在這種情況下,系統(tǒng)會向用戶詢問原來的密碼,,驗證通過后才可以輸入新密碼,。
大多數(shù)的 Linux 發(fā)行版本安裝時都會啟用 password cracker 模塊,用于修改密碼,。這個模塊將檢查密碼是否遵循了良好的密碼設(shè)置習慣,。如果用戶使用了不安全的密碼,它將自動警告用戶,。您可以將系統(tǒng)配置為要求用戶必須使用安全的密碼,。root 在設(shè)置不安全的密碼時也會被警告,但是仍然可以設(shè)置成功,。
在 Webmin 中,,可以使用 System窗體中的“Change Passwords”模塊來修改密碼。在列表中選擇一個用戶,,然后在空白處輸入新密碼,。
刪除用戶
可以從控制臺使用 userdel 命令來刪除用戶。
使用可選的 -r開關(guān)可以將用戶的主目錄及所有相關(guān)信息全部刪除,。如果想要保留用戶主目錄,,那么不要使用 -r開關(guān)。這個開關(guān)不會自動刪除系統(tǒng)中所有屬于這個用戶的文件,,只是刪除他的主目錄,。
如何組織用戶
Linux 的配置是基于文本的。Linux 中的所有用戶都存放于 /etc/passwd 文件中,。您可以使用 more 命令來分頁查看這個文件:
more /etc/passwd
|
/etc 目錄
不要忘記,,Linux 的大多數(shù)配置文件都是在 /etc 目錄下。
|
|
這個文件的結(jié)構(gòu)非常直觀,。每一行是一個新用戶,,參數(shù)用冒號隔開。
userid:x:75000:75000::/home/userid:/bin/bash
|
第一列是用戶名。第二列是用戶的密碼,。第三列是用戶的數(shù)字 ID,。第四列是用戶的主組的 ID。第五列是用戶的全名,,或者是注釋,。第六列是用戶主目錄的位置,這個目錄通常位于 /home 目錄下,,目錄名與用戶 ID 相同,。第七列是用戶的默認控制臺 shell。
Password 文件結(jié)構(gòu)
Login ID |
Password |
User ID |
Group ID |
Comment |
Home directory |
Default shell |
userid |
x |
75000 |
75000 |
|
/home/userid |
/bin/bash |
注意上面的例子中 Password 列是一個“x”,。這并不是說用戶的密碼是“x”,。以前密碼曾經(jīng)是以平文本的形式存儲在這個文件中。現(xiàn)在也還有這樣的配置,,但由于密碼容易泄露,已經(jīng)很少有人再這樣做了,。解決的方法是創(chuàng)建 shadow password,。在 /etc/passwd 文件中存放密碼的位置只是存放一個“x”,而經(jīng)過加密的密碼存放于 /etc/shadow 文件中,。這項技術(shù)通過將用戶信息與密碼數(shù)據(jù)分離而提高了安全性,。MD5 密碼加密算法支持更為可靠的密碼,從而進一步提高了安全性,。一個映像密碼條目的樣例如下所示:
|
映像密碼和用戶權(quán)限
Linux 用戶管理的特點之一在于它沿襲了 UNIX 風格,,使用 passwd 文件。登錄的用戶必須可以讀取 /etc/passwd 文件,,以判斷他的用戶名是否存在,。如果將用戶名和密碼存放在同一個文件中,潛在的攻擊者就可能獲得密碼,;他們可以下載 /etc/passwd 文件,,然后以暴力破解的方法獲得密碼。映像文件不必所有人都可讀,,這樣攻擊者將不能獲得任何形式的密碼,。
這種方法還是不最好的,因為攻擊還是可以得到 一些 用戶信息,。更好的方法是將用戶保存于一個單獨的地方,,比如使用 LDAP。
|
|
userid:$1$z2NXZR19$PZpyL84DmPKBXMeURaXXM.:12138:0:186:7:::
所有的映像密碼過程都是在后臺進行,,您只需要啟用這項功能,,別的什么都不用去做。
組
Linux 中的組與 Windows 中的組很類似。您可以創(chuàng)建一個組,,然后將成員添加到這個組的列表中,。可以以組為單位來分配資源,。隸屬于同一個組的成員可以訪問同一資源,。
使用控制臺命令 groupadd 創(chuàng)建組很簡單:
這將創(chuàng)建一個名為“newgroup”的沒有任何成員的組。組存放于 /etc/group 文件中,。每一個組由單獨的一行列出,,如下所示:
mygroup:x:527:
第一列是組的名字。第二列是一個密碼,。同樣,,“x”說明真正的密碼存放在 /etc/gshadow 映像文件中。第三列是組的一個數(shù)字索引,。在第三列之后將是以逗號隔開的組的成員的用戶 ID,。
可以使用 gpasswd 命令向組中添加成員,要使用 -a 開關(guān),,后面跟要添加的用戶名:
gpasswd -a userid mygroup
|
刪除組的成員還是使用這個命令,,不過使用的開關(guān)是 -d 而不是 -a :
gpasswd -d userid mygroup
|
也可以通過直接編輯 /etc/group 文件來對組進行修改。
|
編輯 passwd 文件時要當心
直接編輯 /etc/passwd 文件和 /etc/group 文件的真正危險在于有可能偶然失誤而造成 ID 編號的重復,。所有的資源都通過 ID 編號而不是用戶或組的名字來確定用戶的身份,。如果您不小心造成了 ID 編號的重復,那么可能會有一些意想不到的事情發(fā)生,。例如,,如果您將一個用戶的 ID 編號設(shè)置為 0 (root 用戶的 ID),那個用戶的身份將是 root!,。另外,,如果您在文件中刪除了用戶行或者組行,那么對應(yīng)的用戶或組也就被刪掉了,。
這些都是人為的錯誤,。使用工具可以避免這些錯誤。不過,,有時直接去編輯 /etc/group 文件是解決問題最快捷的途徑,。您一定要記住,當您在編輯那些文件時,,您管理的是實際的權(quán)力,。一定要小心。
|
|
在 Webmin 中,,可以使用前面用到的管理用戶的工具來創(chuàng)建,、編輯、除去組。
用戶和組的關(guān)聯(lián)
雖然在這里我們不能詳盡地論述訪問控制,,不過您應(yīng)該對用戶和組對文件的訪問權(quán)限有初步的了解,。如果您以長格式列出一個目錄下的文件,您看到的將如下顯示,。
-rw-r--r-- 1 userid mygroup 703 Jun 23 22:12 myfile
現(xiàn)在暫時忽略其他的列,,只去看第三、四和最后一列,。第三列是文件主人的名字,,userid。第四列是關(guān)聯(lián)到這個文件的組,,mygroup,。最后一列是文件名。每個文件只能屬于一個主人和一個組,??梢詾椴荒軞w于這兩類的其他用戶(Other)設(shè)置權(quán)限??梢哉J為 Other 相當于 Windows 中的 Everyone 組,。
一個文件只能屬于一個主人,這在操作系統(tǒng)中很常見,,但是,文件只能屬于一個組,,初次使用這一規(guī)則的管理員可能會覺得受到了限制,。事實并不如此。由于用戶可以同時是多個組的成員,,所以只需要創(chuàng)建新的組就可以安全使用資源,。在 Linux 中,往往是基于所需要的資源訪問權(quán)限而不是根據(jù)業(yè)務(wù)單位來定義組,。如果系統(tǒng)的資源邏輯上是有組織的,,那么可以創(chuàng)建更多的組來更好地控制對資源的訪問。
在本文最后的 參考資料 部分,,您可以找到關(guān)于關(guān)聯(lián)用戶和組的更多詳細資料,。查看 man chmod 可以獲得如何改變文件權(quán)限的詳細信息。
結(jié)束語
在 Linux 中管理用戶和組的方式與 Windows 中本質(zhì)上是相同的,,但是 Linux 中只能有惟一的組可以關(guān)聯(lián)到一個系統(tǒng)資源,。應(yīng)該這樣認識 Linux 中的組管理:不要吝惜對組的使用,在復雜的環(huán)境中,,不要害怕創(chuàng)建很多組,。應(yīng)該根據(jù)資源訪問權(quán)限而不是基于業(yè)務(wù)單位去創(chuàng)建組。
用戶和組信息分別存儲在 /etc/passwd 文件和 /etc/group 文件中。您的系統(tǒng)可能還會有 /etc/shadow 和 /etc/gshadow 文件,,它們存儲的是為了安全而經(jīng)過加密的密碼,。直接編輯這些文件來管理用戶和組不是不可以,但您一定要謹慎行事,。
所有的用戶和組的管理都可以在控制臺中完成,,可以寫成腳本。也可以使用 Webmin 等工具以圖形化的方式管理用戶和組,。
參考資料
- 您可以參閱本文在 developerWorks 全球站點上的 英文原文.
- 閱讀 Windows 到 Linux 之旅系列文章的其他部分( developerWorks,, 2003 年 11 月)。
- The Linux System Administrator‘s Guid, Chapter 11. Managing user accounts 雖然是一份比較老的文檔,,但是仍值得一讀,,因為管理用戶和組的技術(shù)是通用的。這份指南將幫助您深入學習 Linux 中基于控制臺的管理,。
- Linux Headquarters 站點給出了關(guān)于很多主題的基本教程和提示,。那些標簽往往是“我已經(jīng)安裝了 Linux ... 現(xiàn)在該怎么辦?,?,?”您可能會對 這些教程 很感興趣。
- Linux Documentation Project 也提供了一個 分類的 HOWTO 列表,,來幫助您快速方便地找到適當?shù)奈臋n,。
- 在“ 針對 Linux 開發(fā)新手的基本任務(wù)”中也對使用 GUI 系統(tǒng)工具添加用戶進行了介紹。
- developerWorks 教程“ LPI certification 101 exam prep, Part 3: Intermediate administration”中也涉及了用戶管理方面的內(nèi)容,。
- IBM Directory Server 實現(xiàn)了輕量目錄訪問協(xié)議(Lightweight Directory Access Protocol , LDAP),,用于訪問目錄服務(wù),尤其是那些基于 X.500 的目錄服務(wù),。 更多細節(jié)請閱讀“ 使用 IBM Directory Server 進行 Linux 用戶驗證”,。
- Linux Documentation Project 的 Introduction to Linux 指南的 第 3 章中講述了文件權(quán)限和安全。
- 請參考 Linux Unleashed(Macmillan Computer Publishing,,1998 年)的相關(guān)章節(jié),,以及 The Official Red Hat Linux System Administration Primer(Red Hat, 2002 年)的 Managing Accounts and Groups,。
- Maryland 大學共享了他們的關(guān)于 安全密碼的選擇 的思路與技巧,。
- Red Hat Linux Manual 文檔中有關(guān)于使用 Shadow passwd file的詳細資料。
- Linux Shadow Password HOWTO介紹了映像系統(tǒng)的背景歷史和相關(guān)資料,,以及面向?qū)崿F(xiàn)的循序漸進的指南,。
- 系統(tǒng)安全是一個廣泛而復雜的主題,但是在互聯(lián)網(wǎng)的世界中,,它會影響到每一個人,。幸運的是,,只要開始意識到這個問題,就不算晚,。以下兩篇文章將對您有所幫助,,一篇是 Adding Security to Common Linux Distributions,另一篇是 Strategies for Keeping a Secure Server(來自于以前引用過的 Linux Administration Made Easy指南的第 12 章),。
- IBM developerWorks 文章“ Addressing security issues in Linux”將帶您開始實現(xiàn)初步的安全,。
- “ Linux 用戶技術(shù) FAQ” ( developerWorks, 2001 年 7 月)也可以幫助您順利地從 Windows 過渡到 Linux,。
- 要開始在 Linux 上使用 IBM 的軟件產(chǎn)品,, 為您的 Linux 應(yīng)用開發(fā)加油提速 將為您提供最好的參考資料。您可以找到關(guān)于 DB2,、Lotus Domino,、WebSphere Application Server、WebSphere Studio 等多種應(yīng)用軟件的安裝提示和參考資料,。您還可以登錄獲得免費的 Linux Software Evaluation Kit,,里面有試用軟件和培訓資料。
- 在 developerWorks Linux 專區(qū)可以找到更多 為 Linux 開發(fā)者準備的參考資料,。
關(guān)于作者
|
|
|
Chris Walden 是位于德克薩斯州奧斯汀的 IBM Developer Relations Technical Consulting(也稱為 dragonslayers )的一名電子商務(wù)架構(gòu)師,,該公司為 IBM 商業(yè)伙伴提供教育、實現(xiàn)和咨詢,。他致力于 Linux 相關(guān)工作,,一有機會就向身邊的人宣傳 Linux 的種種好處。除了完成他的架構(gòu)師的職責之外,,他還精通 Linux 基礎(chǔ)設(shè)施服務(wù)器的各個領(lǐng)域,,包括混合平臺用戶環(huán)境下的文件、打印以及其他應(yīng)用服務(wù)等,。Chris 有 10 年的計算機行業(yè)經(jīng)驗,從現(xiàn)場支持到 Web 應(yīng)用開發(fā)和顧問,,各個領(lǐng)域他都曾涉足,。您可以通過 [email protected] 與 Chris 聯(lián)系。
|
|