UNIX 使用者管理


在Unix系統上的賬戶有三種型別:

  1. Root 賬號: 這也被稱為超級使用者,並有完整的和不受約束的控制系統。一個超級使用者可以執行任何命令,沒有任何限制。該使用者應承擔作為一個系統管理員。

  2. System 賬號: 系統帳戶是那些需要特定系統元件,例如電子郵件帳戶和sshd的賬戶的操作。這些賬戶通常需要在您的系統上的一些特定功能,任何修改系統可能會受到不好的影響。

  3. User 賬號: 使用者帳戶提供互動式存取系統的使用者和使用者組。一般使用者通常分配給這些帳戶,通常有有限的存取關鍵系統檔案和目錄。

UNIX支援組帳戶的概念邏輯分組多個賬戶。每個帳戶將任何組帳戶的一部分。 Unix群組中起著重要的作用,在處理檔案的許可權和流程管理。

管理使用者和組:

有三個主要的使用者管理檔案:

  1. /etc/passwd: 保持使用者帳戶和密碼資訊。這個檔案包含了大多數的Unix系統上的賬戶資訊。

  2. /etc/shadow: 相應的帳戶儲存加密口令。並非所有的系統支援此檔案。

  3. /etc/group: 此檔案包含每個帳戶的組資訊。

  4. /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選項。您可以刪除的主目錄,在以後的時間。