UNIX 用戶管理
在Unix係統上的賬戶有三種類型:
-
Root 賬號: 這也被稱為超級用戶,並有完整的和不受約束的控製係統。一個超級用戶可以運行任何命令,冇有任何限製。該用戶應承擔作為一個係統管理員。
-
System 賬號: 係統帳戶是那些需要特定係統組件,例如電子郵件帳戶和sshd的賬戶的操作。這些賬戶通常需要在您的係統上的一些特定功能,任何修改係統可能會受到不好的影響。
-
User 賬號: 用戶帳戶提供交互式訪問係統的用戶和用戶組。一般使用者通常分配給這些帳戶,通常有有限的訪問關鍵係統文件和目錄。
UNIX支持組帳戶的概念邏輯分組多個賬戶。每個帳戶將任何組帳戶的一部分。 Unix群組中起著重要的作用,在處理文件的權限和流程管理。
管理用戶和組:
有三個主要的用戶管理文件:
-
/etc/passwd: 保持用戶帳戶和密碼信息。這個文件包含了大多數的Unix係統上的賬戶信息。
-
/etc/shadow: 相應的帳戶保存加密口令。並非所有的係統支持此文件。
-
/etc/group: 此文件包含每個帳戶的組信息。
-
/etc/gshadow: 此文件包含安全組的帳戶信息。
檢查上述所有文件使用cat命令。
以下是大多數Unix係統上可用來創建和管理帳戶和組的命令:
命令 | 描述 |
---|---|
useradd | Adds accounts to the system. |
usermod | Modifies account attributes. |
userdel | Deletes accounts from the system. |
groupadd | Adds groups to the system. |
groupmod | Modifies group attributes. |
groupdel | Removes groups from the system. |
您可以使用聯機幫助幫助這裡提到的每個命令的語法檢查完成。
創建一個組
您需要創建組,然後才能再創建任何帳戶,係統中必須使用現有組。你將不得不在 /etc/groups文件中列出的所有組。
所有默認組將係統帳戶的特定群體,它是不推薦使用普通帳戶。所以語法來創建一個新的帳戶:
groupadd [-g gid [-o]] [-r] [-f] groupname
下麵是詳細的參數:
選項 | 描述 |
---|---|
-g GID | The numerical value of the group's ID. |
-o | This option permits to add group with non-unique GID |
-r | This flag instructs groupadd to add a system account |
-f | This option causes to just exit with success status if the specified group already exists. With -g, if specified GID already exists, other (unique) GID is chosen |
groupname | Actaul group name to be created. |
如果你不指定任何參數,那麼係統將使用默認值。
以下示例將創建開發組的默認值,這是非常可以接受的大多數管理員。
$ groupadd developers
修改組:
要修改組,使用groupmod語法:
$ groupmod -n new_modified_group_name old_group_name
要改變developers_2 組的名稱到開發組,輸入:
$ groupmod -n developer developer_2
這裡顯示如何改變GID為545:
$ groupmod -g 545 developer
刪除組:
要刪除現有的組,所有你需要的是一個命令groupdel命令和組名。要刪除的 financial 組,該命令是:
$ groupdel developer
這將刪除組,冇有任何與該組相關的文件。這些文件是由他們的所有者仍然可以訪問。
創建一個帳戶
讓我們來看看如何在你的Unix係統上創建一個新的帳戶。以下是語法來創建用戶帳戶:
useradd -d homedir -g groupname -m -s shell -u userid accountname
下麵是詳細的參數:
Option | 描述 |
---|---|
-d homedir | Specifies home directory for the account. |
-g groupname | Specifies a group account for this account. |
-m | Creates the home directory if it doesn't exist. |
-s shell | Specifies the default shell for this account. |
-u userid | You can specify a user id for this account. |
accountname | Actual account name to be created |
如果你不指定任何參數,那麼係統將使用默認值。useradd命令修改了 /etc/passwd, /etc/shadow, 和 /etc/group文件,並創建一個主目錄。
下麵的例子將創建一個帳戶 mcmohd 其主目錄設置到 /home/mcmohd 和開發組。該用戶將有Korn Shell的分配給它。
$ useradd -d /home/mcmohd -g developers -s /bin/ksh mcmohd
發出上述命令前,請確保你已經有開發組使用groupadd的命令創建。
一旦創建一個帳戶,你可以設置其密碼,使用passwd命令如下:
$ passwd mcmohd20 Changing password for user mcmohd20. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
當你輸入 passwd accountname,它給你提供的密碼你是超級用戶,否則,你就可以改變你的密碼使用相同的命令,但冇有指定帳戶名選項來改變。
修改帳戶:
通過usermod命令使您可以更改現有的帳戶,在命令行。它使用相同的參數,useradd命令,加上-l參數,它允許您更改帳戶名。
舉例來說,,更改帳戶名稱 mcmohd 到 mcmohd20,並相應地改變主目錄,你會需要發出以下命令:
$ usermod -d /home/mcmohd20 -m -l mcmohd mcmohd20
刪除一個帳戶:
userdel命令可以用來刪除現有用戶。這是一個非常危險的命令,如果不小心使用。
隻有一個參數或選項可用於命令:.r,刪除帳戶的主目錄和郵件文件。
例如,刪除帳戶mcmohd20,您將需要發出以下命令:
$ userdel -r mcmohd20
如果你想保持她的主目錄備份的目的,省略-r選項。您可以刪除的主目錄,在以後的時間。