Linux的使用者與使用者組管理

2022-08-21 13:45:11 字數 3071 閱讀 3662

linux 是多使用者多工作業系統,linux 系統支援多個使用者在同一時間內登陸,不同使用者可以執行不同的任務,並且互不影響。

不同使用者具有不問的許可權,毎個使用者在許可權允許的範圍內完成不間的任務,linux 正是通過這種許可權的劃分與管理,實現了多使用者多工的執行機制。

使用者:每個使用者都有唯一的使用者名稱和密碼。在登入系統時,只有正確輸入使用者名稱和密碼,才能進入系統和自己的主目錄。

使用者組:是具有相同特徵使用者的邏輯集合。使用者組裡面的所有使用者所擁有的許可權都是一樣的。所以如果想讓很多使用者擁有同一許可權,那麼就建立乙個組,把需要擁有許可權的使用者放進這個組裡就可以了。

將使用者分組是 linux 系統中對使用者進行管理及控制訪問許可權的一種手段,通過定義使用者組,很多程式上簡化了對使用者的管理工作。

linux使用者和組的關係一共有4種:

一對一:乙個使用者只在乙個組裡面,是這個組裡面的唯一使用者。

一對多:乙個使用者存在於多個使用者組裡面,這個使用者擁有這些組的所有許可權。

多對一:多個使用者存在於乙個組中,這些使用者的許可權和組都是一樣的。

多對多:多個使用者存在於多個組裡面,這個是前面三個關係的交叉關係。

使用者組和使用者關係圖如下所示:

登陸 linux 系統時,雖然輸入的是自己的使用者名稱和密碼,但其實 linux 並不認識你的使用者名稱,它只認識使用者名稱對應的 id 號(也就是一串數字)。linux 系統將所有使用者的名稱與 id 的對應關係都儲存在 /etc/passwd 檔案中。(其實使用者名稱並無實際作用,只是方便使用者記憶而已)

linux 系統中,每個使用者的 id 細分為 2 種,分別是使用者 id(user id,簡稱 uid)組 id(group id,簡稱 gid),這與檔案有擁有者和擁有群組兩種屬性相對應(如下圖所示)。

從圖中可以看到,該檔案的所有者是超級管理員 root,擁有群組也是 root。同時下方也寫著「您不是所有者,所以您不能更改這些許可權」。

既然我們知道linux並不認識使用者名稱,那麼它是靠什麼分辨他的擁有者和組呢?

每個檔案都有自己的擁有者 id 和群組 id,當顯示檔案屬性時,系統會根據 /etc/passwd 和 /etc/group 檔案中的內容,分別找到 uid 和 gid 對應的使用者名稱和群組名,然後顯示出來。(在/etc/passwd 檔案中,利用 uid 可以找到對應的使用者名稱;在 /etc/group 檔案中,利用 gid 可以找到對應的群組名。)

注意,一定不要隨意更改 /etc/passwd 檔案中使用者的 uid ,否則將會導致很多程式無法正常執行。

linux 系統中的 /etc/passwd 檔案,是系統使用者配置檔案,儲存了系統中所有使用者的基本資訊,並且所有使用者都可以對此檔案執行讀操作。

下面我們就開啟看看裡面包含了哪些內容:

root:x:0:0:root:/root:/bin/bash

daemon

:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

bin:x:2:2:bin:/bin:/usr/sbin/nologin

sys:x:3:3:sys:/dev:/usr/sbin/nologin

……………………省略下面內容………………

我們可以發現他們每一行都是乙個使用者,並且都有相同的規律就是一共有7個字段,每個欄位和下乙個字段之間使用「:」作為分隔符,每個含義如下:

使用者名稱:密碼:uid(使用者id):gid(組id):描述性資訊:主目錄:預設shell
這時候我們可能會有疑問,我並沒有建立這麼多使用者,從**來的這麼多使用者?

這些使用者中的絕大多數是系統或服務正常執行所必需的使用者,這種使用者通常稱為系統使用者或

偽使用者。

系統使用者無法用來登入系統,但也不能刪除,因為一旦刪

除,依賴這些使用者執行的服務或程式就不能正常執行,會導致系統問題。

下面我會一一介紹7個字段的含義:

使用者名稱,就是一串代表使用者身份的字串。

前面講過,使用者名稱僅是為了方便使用者記憶,linux 系統是通過 uid 來識別使用者身份,分配使用者許可權的。/etc/passwd 檔案中就定義了使用者名稱和 uid 之間的對應關係。

"x" 表示此使用者設有密碼,但不是真正的密碼,真正的密碼儲存在 /etc/shadow 檔案中。

在早期的 unix 中,這裡儲存的就是真正的加密密碼串,但由於所有程式都能讀取此檔案,非常容易造成使用者資料被竊取。

因此,現在 linux 系統把真正的加密密碼串放置在 /etc/shadow 檔案中,此檔案只有 root 使用者可以瀏覽和操作,這樣就最大限度地保證了密碼的安全。

需要注意的是,雖然 "x" 並不表示真正的密碼,但也不能刪除,如果刪除了 "x",那麼系統會認為這個使用者沒有密碼,從而導致只輸入使用者名稱而不用輸入密碼就可以登陸(只能在使用無密碼登入,遠端是不可以的),除非特殊情況(如破解使用者密碼),這當然是不可行的。

uid,也就是使用者 id。每個使用者都有唯一的乙個 uid,linux 系統通過 uid 來識別不同的使用者。

實際上,uid 就是乙個 0~65535 之間的數,不同範圍的數字表示不同的使用者身份,具體如表所示。

uid範圍

使用者身份

0超級使用者。uid 為 0 就代表這個賬號是管理員賬號。在 linux 中,如何把普通使用者公升級成管理員呢?只需把其他使用者的 uid 修改為 0 就可以了,這一點和 windows 是不同的。不過不建議建立多個管理員賬號。

1~499

系統使用者(偽使用者)。也就是說,此範圍的 uid 保留給系統使用。其中,1~99 用於系統自行建立的賬號;100~499 分配給有系統賬號需求的使用者。

其實,除了 0 之外,其他的 uid 並無不同,這裡只是預設 500 以下的數字給系統作為保留賬戶,只是乙個公認的習慣而已。

500~65535

普通使用者。通常這些 uid 已經足夠使用者使用了。但不夠用也沒關係,2.6.x 核心之後的 linux 系統已經可以支援 232 個 uid 了。

linux使用者與使用者組管理

使用者與組管理 一 使用者介紹 1 登入系統時必須要有使用者名稱和密碼 2 每個使用者都有自己的使用者id 就好像 名和ip 一樣,通俗一點就想每個中國公民的身份證 3 使用者分為超級使用者 0 系統使用者 1 499 普通使用者 500 40 多億 4 用id命令顯示當前使用者id 二 使用者配置...

Linux使用者與使用者組管理

下面介紹中的示例,來自於win10 linux子系統。更多linux命令可參考 linux 是乙個多使用者 多工的作業系統。比如通過遠端訪問,多個使用者可以同時登陸乙個系統並執行各自的多個任務。使用者在系統中是分角色的,並通過uid和gid進行區分。uid就是使用者id,gid就是群組的id號。在l...

linux 使用者與使用者組管理

使用者管理 新增使用者 useradd 選項 使用者名稱 預設系統自動分配主組和uid 選項 g g,u g 指定使用者的使用者主組 g 指定使用者的使用者附組 u 指定使用者的uid 修改使用者 usermod 選項 使用者名稱 選項 g g u l l 修改使用者名稱 刪除使用者 userdel...