天天看點

FreeBSD使用者管理-增加使用者

為了使用多使用者的FreeBSD作業系統,必須是系統的登記使用者。使用者資訊儲存在/etc目錄下passwd 檔案中,在這個檔案中定義的一個FreeBSD使用者應具有以下屬性:

  使用者名(Username):在系統中使用這個使用者名來辨別使用者,每個使用者名不超過8個字元, 且是大小寫敏感的。習慣上使用者名隻使用小寫字母,通常根據使用者真實名字的縮寫來選擇合适的使用者名。

  使用者辨別号(User ID):由于計算機中處理數字比處理字元串更容易,因而使用數字方式的 使用者辨別号來區分不同使用者更為适合。事實上Unix系統就是使用唯一的使用者辨別号來區分使用者的,在某些特定目的下,可 以存在多個有不同使用者名、但使用者辨別号相同的使用者,這表示這些不同使用者名的使用者實際上是同一個使用者。

  密碼(password):系統用它來驗證使用者是否合法。超級使用者root可以使用系統程式 passwd來更改每個使用者的密碼,使用者也可以使用passwd來更改自己的密碼。較老的Unix系統中直接在 passwd檔案中儲存密碼的密文,由于passwd檔案是系統中的每個使用者都可以讀取的,隻通過加密來保證密碼的安全性。然 而現代計算機的發展使得情形發生了變化,高速計算能力使得通過猜測的方式來破譯密碼成為可能。是以現在Unix中密碼 均不再直接儲存在passwd檔案中了,而passwd檔案中的密碼域使用一個 “*” 來代替。FreeBSD使用 /etc/master.passwd作為真正的密碼檔案,儲存包括個人密碼在内的資料,但這個檔案不能被普通使用者讀 取。

  指令解釋程式(shell):使用者登入後啟動這個程式來接收使用者的輸入并執行輸入相應指令,标 準的shell有sh和csh,更複雜易用的shell有bash和tcsh等,但它們不是基本系統的一部分,必須額 外安裝。shell程式是一個标準的Unix程式,但系統在/etc/shells檔案中定義了一些标準shell的 名字,很多應用程式檢查這個檔案中内容和使用者的shell來判斷這個使用者是普通使用者,還是用于特定目的而建立的使用者。

  個人目錄(home directory):由于FreeBSD是多使用者系統,每個使用者都要有 自己的獨立使用環境,不同使用者的檔案不能互相交叉存放,是以Unix中為每個使用者配置了自己的個人目錄,使用者的檔案都 放置在各自的目錄下,進而互不幹擾。習慣上FreeBSD下使用者的個人目錄位于/home目錄下,使用使用者名作為子目 錄名,多數shell中使用波浪符号~,來代表該使用者的個人目錄。

  組辨別号(Group ID):具有相似屬性的多個使用者可以被配置設定到一個組内,每個組都有自己 的組名,且以自己的組辨別号相區分(組辨別号群組的對應關系在/etc/group檔案中給出),使用者的組辨別号儲存 在passwd檔案中。早期的Unix中,每個使用者隻能屬于一個組,而現代Unix中每個使用者可以同時屬于多個組,除 了在passwd檔案中指定了其歸屬的基本組之外,還可以在檔案/etc/group中,明确指定一個組包括某個使用者 ,使得該使用者能屬于多個組。

  除此之外,使用者還有其他屬性,例如登入類别,這些資訊記錄在另一個密碼檔案:/etc/master.passwd中。

•增加使用者

  雖然可以使用系統安裝程式/stand/sysinstall中的Add User選項來增加使用者群組,但熟 練的管理者并不喜歡這種全螢幕操作方式。Unix下的習慣做法是使用指令行方式,如使用adduser指令來或pw命 令添加使用者。

  adduser指令使用配置檔案/etc/adduser.conf來儲存添加使用者使用的預設資料,如果沒有 這個配置檔案,第一次執行adduser時會詢問預設設定,以自動生成這個設定檔案。這樣對于很多基本一緻的使用者資料 就設定了正确的預設值,以減少輸入的工作量。

  # adduser

  Use option ``-silent'' if you don't want see all warnings & questions.

  Check /etc/shells

  Check /etc/master.passwd

  Check /etc/group

  Enter your default shell: bash csh date no sh [sh]:

  Your default shell is: sh -> /bin/sh

  Enter your default HOME partition: [/home]:

  Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:

  Send message from file: /etc/adduser.message no

  [/etc/adduser.message]:

  Use passwords (y/n) [y]:

  Ok, let's go.

  在前面的過程中生成了配置檔案之後,還可以使用編輯器來修改它的内容以更改adduser的配置。雖然生成了 配置檔案,但每次啟動adduser還會詢問這些預設參數是否需要更改,使得操作不太簡便。為了讓adduser直接 進入使用者資料輸入狀态,可以使用 “adduser -quiet” 減少提示資訊,-quiet的縮寫方式為-q, -silent和-s參數也有同樣的效果。更一勞永逸的方式是直接修改adduser.conf檔案,将其中的 verbose參數改為0,表示盡量減少提示。這個參數的預設值為1,将進行設定預設值的提示,而設定為2能提供更多的配置 參數。

  # adduser -s

  Use option ``-verbose'' if you want see more warnings & questions

  or try to repair bugs.

  Enter username [a-z0-9_-]: user22

  Enter full name []:

  Enter shell bash csh date no sh [sh]:

  Enter home directory (full path) [/home/user22]:

  Uid [1007]:

  Enter login class: default []:

  Login group user22 [user22]:

  Login group is ``user22''. Invite user22 into othergroups: guest no

  [no]:

  Enter password []:

  Use an empty password? (y/n) [y]:

  Name: user22

  Password: ****

  Fullname: user22

  Uid: 1007

  Gid: 1007 (user22)

  Class:

  Groups: user22

  HOME: /home/user22

  Shell: /bin/sh

  OK? (y/n) [y]:

  Added user ``user22''

  Send message to ``user22'' and: no root second_mail_address

  your account ``user22'' was created.

  Have fun!

  See also chpass(1), finger(1), passwd(1)

  Add anything to default message (y/n) [n]:

  Send message (y/n) [y]:

  Add another user? (y/n) [y]:n

  是以可以使用-s參數使adduser直接進入增加使用者的操作步驟,這将詢問增加使用者的必要資料,包括使用者名 、密碼等資料。adduser将使用adduser.conf中的一些内容作為預設提示,通常有提示的步驟可以直接利 用預設提示進行操作。

  比adduser指令功能更複雜的指令為pw,管理者能使用它來完成各種複雜的使用者管理任務,包括增加、删除 使用者,以及修改使用者的各項參數設定。

  另一種更直接的管理使用者的方式是直接編輯密碼檔案的内容。這是Unix早期常見的做法,但随着Unix的發展 ,目前的Unix使用shadow的方法儲存加密密碼資料,使用者資料不僅儲存在passwd檔案中,而真實的密碼等内 容被系統儲存在另一個密碼檔案中,必須同時修改這兩個密碼檔案,使其保持一緻才可以。是以不能直接使用vi等編輯器來 編輯一個/etc/passwd檔案,而應該使用系統提供的vipw指令修改這密碼檔案,并同時寫入兩個檔案。出于安 全的考慮,vipw将使用一個内部編輯器(與vi相同)編輯master.passwd檔案,儲存時同步這兩個密碼文 件。事實上master.passwd檔案才是真正的密碼檔案,單獨改變/etc/passwd檔案,對使用者資料沒有 影響。

  由于系統中會反複讀取使用者密碼,而在普通文本形式的passwd檔案中查找使用者的速度與使用者數量是一種線性關 系,當使用者數量一多,查找效率就急劇下降。而資料庫的形式更适合這些經常發生的查找任務,因為資料庫将自動維護資料的 索引,這些索引可以用來提高查找效率。FreeBSD中提供了一種簡單的的标準資料庫檔案格式,密碼檔案可以使用這種 db資料格式來提高性能。是以密碼檔案有對應的資料庫形式:/etc/pwd.db和/etc/spwd.db,用來 獲得使用者資訊的系統調用事實上首先查詢這兩個資料庫檔案,而由系統來自動維護這兩個資料庫檔案與前兩個passwd文 件同步。系統管理者可以使用pwd_mkdb來從文本形式的密碼檔案來生成資料庫檔案。通常,普通文本形式的passwd 檔案隻适合于有幾百帳号的系統,而db資料庫形式适合一萬以上帳号的系統。

  在其他Unix系統中,第二個密碼檔案的名字與bsd系統使用的檔案名不同,大部分Unix System V 系統使用/etc/shadow檔案。使用不同的名字隻是習慣的問題,檔案格式都是passwd檔案格式。是以如果 要求相容,可以為/etc/master.passwd建立一個叫shadow的符号連接配接。

  組能幫助權限的配置設定,與管理使用者類似,管理組也可以通過sysinstall來完成,或直接改動/etc/group 檔案。使用者除了屬于passwd檔案中定義的組之外,還可以被邀請進入其他組中。adduser添加使用者時會 詢問是否将使用者加入其他組,如果在使用者生成之後在将使用者加入其他組,就需要直接改動/etc/group檔案。例如 group檔案中有這樣一行:

  wheel:*:0:root,admin

  admin:*:100:admin

  這表示使用者admin不但屬于自己在passwd中規定的組,還屬于wheel和admin組。可以使用groups 指令來獲得使用者的屬組清單。

原文出自【比特網】,轉載請保留原文連結:http://www.chinabyte.com/biz/cbfwq/381/2599381.shtml