UNIX 用戶管理

2018-08-12 22:12 更新

用戶管理

在 UNIX 系統(tǒng)中,有三種類型的賬戶:

  • root 帳戶:這也被稱為超級(jí)用戶,這類用戶對(duì)系統(tǒng)擁有完整的和不受約束的控制權(quán)。超級(jí)用戶可以運(yùn)行任何命令,而不受任何限制。這類用戶應(yīng)該承擔(dān)作為一個(gè)系統(tǒng)管理員的任務(wù)。
  • 系統(tǒng)賬戶:系統(tǒng)賬戶是為操作系統(tǒng)特定組件的需要提供的,例如郵件賬戶和 sshd 賬戶。這些賬戶通常是為了滿足系統(tǒng)上一些特定的功能的需要而設(shè)定的,對(duì)它們進(jìn)行的任何修改都可能會(huì)對(duì)系統(tǒng)造成負(fù)面影響。
  • 用戶帳號(hào):用戶帳戶提供交互式訪問系統(tǒng)的用戶和用戶組。通常給普通用戶分配這些賬戶,通常附帶有對(duì)關(guān)鍵系統(tǒng)文件和目錄有限的訪問權(quán)限。

UNIX 支持組帳號(hào)(Group Account)的概念,在邏輯上是許多賬戶的群組。每個(gè)帳戶都可能是任何組賬號(hào)的一部分。UNIX 組在處理文件權(quán)限和流程管理中發(fā)揮了重要的作用。

管理用戶和組

下面列出三個(gè)主要的用戶管理文件:

  • /etc/passwd:此文件保存用戶帳戶和密碼信息。這個(gè)文件包含了 UNIX 系統(tǒng)上大多數(shù)的賬戶信息。
  • /etc/shadow:此文件包含相應(yīng)帳戶的加密密碼。不是所有的系統(tǒng)都支持這個(gè)文件。
  • /etc/group:此文件包含每個(gè)帳戶的組信息。
  • /etc/gshadow:此文件包含安全組帳號(hào)信息。

使用 cat 命令檢查上述所有文件。

大多數(shù) UNIX 系統(tǒng)可用以下命令來創(chuàng)建和管理帳戶和組:

命令 描述
useradd 將賬戶添加到系統(tǒng)。
usermod 修改賬戶屬性。
userdel 從系統(tǒng)刪除賬戶。
groupadd 將組添加到系統(tǒng)。
groupmod 修改組屬性。
groupdel 從系統(tǒng)中刪除組。

可以使用 Manpage 幫助 查看這里提到每個(gè)命令的完整語法。

創(chuàng)建一個(gè)組

在創(chuàng)建任何賬戶之前需要先創(chuàng)建組,否則將不得不使用系統(tǒng)中現(xiàn)有的組。你會(huì)在 /etc/groups 文件中找到所有組的列表。

所有默認(rèn)組都是系統(tǒng)帳戶組成的特定組,不推薦普通賬戶使用。所以下面給出用來創(chuàng)建一個(gè)新組帳戶的語法:

     groupadd [-g gid [-o]] [-r] [-f] groupname

下面列出詳細(xì)的參數(shù):

選項(xiàng) 描述
-g GID 組 ID 的數(shù)值。
-o 這個(gè)選項(xiàng)允許給組添加一個(gè)非唯一的 GID。
-r 這個(gè)標(biāo)志表示給組添加一個(gè)系統(tǒng)賬戶。
-f 如果指定的組已經(jīng)存在,這個(gè)選項(xiàng)會(huì)導(dǎo)致成功退出。附帶 -g 時(shí),如果指定 GID 已經(jīng)存在,就選擇其他(獨(dú)特的) GID。
groupname 創(chuàng)建一個(gè)真實(shí)的組名稱。

如果你沒有指定任何參數(shù),那么系統(tǒng)將使用默認(rèn)值。

以下示例將使用默認(rèn)值創(chuàng)建開發(fā)人員組,這為大部分的管理員接受。

    $ groupadd developers

修改組

修改一個(gè)組,使用 groupmod 語法:

    $ groupmod -n new_modified_group_name old_group_name

將 developers_2 組的名稱改為 developer,例如:

    $ groupmod -n developer developer_2

下邊描述如何將 developer 的 GID 更改為 545:

    $ groupmod -g 545 developer

刪除一個(gè)組

刪除現(xiàn)有的組,需要的所有東西就是 groupdel 命令和組名。例如刪除 developer 組,命令是:

    $ groupdel developer

這個(gè)操作只是刪除了組,而不涉及任何跟組相關(guān)的文件。這些文件仍然可以被它們的主人訪問。

創(chuàng)建一個(gè)帳戶

讓我們看看如何在 UNIX 系統(tǒng)上創(chuàng)建一個(gè)新的帳戶。下面是用來創(chuàng)建一個(gè)用戶帳戶的語法:

    useradd -d homedir -g groupname -m -s shell -u userid accountname

下面列出詳細(xì)的參數(shù):

選項(xiàng) 描述
-d homedir 指定賬戶的主目錄。
-g groupname 指定該賬戶所屬的組賬戶。
-m 如果它不存在,則創(chuàng)建主目錄。
-s shell 指定該帳戶的默認(rèn) shell。
-u userid 您可以為賬戶指定一個(gè)用戶id。
accountname 創(chuàng)建一個(gè)真實(shí)的帳戶名稱

如果你沒有指定任何參數(shù),那么系統(tǒng)將使用默認(rèn)值。useradd 命令將修改 /etc/passwd 文件、/etc/shadow 文件、/etc/group 文件并創(chuàng)建一個(gè)主目錄。

下面的示例將創(chuàng)建一個(gè)帳戶:mcmohd,主目錄設(shè)置為 /home/mcmohd,組為 developers。將 Korn Shell 分配給這個(gè)用戶。

    $ useradd -d /home/mcmohd -g developers -s /bin/ksh mcmohd

上面的命令執(zhí)行之前,必須確保你已經(jīng)使用 groupadd 命令創(chuàng)建了 developers 組。

創(chuàng)建一個(gè)帳戶之后,你可以使用 passwd 命令設(shè)置它的密碼,如下所示:

    $ passwd mcmohd20
    Changing password for user mcmohd20.
    New UNIX password:
    Retype new UNIX password:
    passwd: all authentication tokens updated successfully.

當(dāng)您輸入 passwd 賬戶名,它會(huì)假定你是超級(jí)用戶,從而更改密碼。否則你只能使用這樣的命令改變你的密碼,而不能更改指定帳戶的密碼。

修改一個(gè)賬戶

usermod 命令允許從命令行更改現(xiàn)有的賬戶。它使用和 useradd 命令相同的參數(shù),加上 -l 參數(shù),允許更改帳戶名稱。

例如,將賬戶名稱 mcmohd 更改為 mcmohd20 并相應(yīng)地改變主目錄,需要執(zhí)行以下命令:

    $ usermod -d /home/mcmohd20 -m -l mcmohd mcmohd20

刪除一個(gè)賬戶

userdel 命令可以用來刪除現(xiàn)有的用戶。這是一個(gè)非常危險(xiǎn)的命令,必須小心使用。

這個(gè)命令只有一個(gè)參數(shù)或可用的選項(xiàng):.r,用來刪除帳戶的主目錄和郵件文件。

例如,刪除帳戶 mcmohd20,需要發(fā)出以下命令:

    $ userdel -r mcmohd20

如果為了備份的目的,想保留它的主目錄,省略 -r 選項(xiàng)??梢愿鶕?jù)需要在稍后的時(shí)間刪除主目錄。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)