作為Linux系統管理員,您將負責確保組織中所有IT操作的順暢進行。鑑於一些IT操作是相互交織的,系統管理員通常需要扮演多種角色,包括數據庫或網絡管理員。
本文是LFCA系列的第五部分,在這一部分中,您將熟悉一般的系統管理命令,以在Linux系統中創建和管理用戶。
Linux中的用戶帳戶管理
Linux系統管理員的主要職責之一是在Linux系統中創建和管理用戶。每個用戶帳戶有2個唯一標識符: 用戶名和用戶ID(UID)。
基本上,Linux中有3種主要的用戶類別:
Root用戶
在Linux系統中,root用戶是最強大的用戶,通常在安裝過程中創建。root用戶在Linux系統或任何其他類UNIX操作系統中擁有絕對的權力。該用戶可以訪問所有命令、文件和目錄,並根據自己的喜好修改系統。
root 用户可以更新系统、安装和卸载软件包、添加或删除其他用户、授予或撤销权限,并执行任何其他系统管理任务,而无需任何限制。
root 用户几乎可以在系统上做任何事情。Linux 和类 UNIX 系统的假设是您对系统的操作非常了解。也就是说,root 用户很容易破坏系统。只需执行一个致命命令,系统就会崩溃。
因此,强烈不建议以 root 用户身份运行命令。相反,良好的做法要求您应该配置一个 sudo 用户。也就是授予普通用户 sudo 特权来执行某些管理任务,并将某些任务限制只能由 root 用户执行。
普通用户
A regular user is a normal login user that can be created by a systems administrator. Usually, there is a provision to create one during the installation process. However, you can still create as many regular users as needed post-installation.
A regular user can only perform tasks and access files and directories for which they are authorized. If need be, a regular user can be granted elevated privileges to perform administrative-level tasks. Regular users can also be deleted or disabled when the need arises.
服务账户
这是在安装软件包时创建的非登录帐户。此类帐户用于服务在系统中执行进程。它们并不设计或打算在系统中执行任何常规或管理任务。
用户管理文件
Linux 系统中关于用户的信息存储在以下文件中:
- /etc/passwd文件
- /etc/group文件
- /etc/gshadow文件
- /etc/shadow文件
讓我們了解每個文件及其功能:
/etc/passwd文件
/etc/passwd文件包含有關用戶的大量信息,這些信息包含在各種字段中。要查看文件的內容,只需使用如下所示的cat命令。
$ cat /etc/passwd
以下是輸出的一部分。
tecmint:x:1002:1002:tecmint,,,:/home/tecmint:/bin/bash
讓我們專注於第一行並詳細說明各個字段。從最左邊開始,我們有以下內容:
- 用戶名:這是用戶的名稱,在這種情況下是tecmint。
- 密碼:第二列代表用戶的加密密碼。密碼不以明文形式打印,而是使用帶有x標誌的占位符。
- UID:這是用戶ID。這是每個用戶的唯一標識符。
- GID:這是組ID。
- A brief description or summary of the user.
- 這是用戶的主目錄的路徑。對於tecmint用戶,我們有/home/tecmint。
- 這是登錄shell。對於常規登錄用戶,這通常表示為/bin/bash。對於SSH或MySQL等服務帳戶,這通常表示為/bin/false。
/etc/group 文件
此文件包含有关用户组的信息。创建用户时,shell 会自动创建与用户用户名相对应的组。这被称为主组。用户在创建时被添加到主组中。
例如,如果创建名为 bob 的用户,则系统会自动创建名为 bob 的组,并将用户 bob 添加到该组中。
$ cat /etc/group tecmint:x:1002:
/etc/group 文件有3列。从最左边开始,我们有:
- 组名。每个组名必须是唯一的。
- 组密码。通常用 x 占位符表示。
- 组 ID(GID)
- 组成员。这些是属于组的成员。如果用户是组中唯一的成员,则此字段为空白。
注意:用户可以是多个组的成员。同样,一个组可以有多个成员。
要确认用户属于哪些组,请运行以下命令:
$ groups username
例如,要检查用户 tecmint 属于哪些组,请运行以下命令:
$ groups tecmint
输出确认用户属于两个组:tecmint 和 sudo。
tecmint : tecmint sudo
/etc/gshadow 文件
此文件包含组帐户的加密或“隐藏”密码,出于安全原因,普通用户无法访问。只有 root 用户和具有 sudo 权限的用户可以读取它。
$ sudo cat /etc/gshadow tecmint:!::
从最左边开始,文件包含以下字段:
- 群組名稱
- 加密的群組密碼
- 群組管理員
- 群組成員
/etc/shadow 檔案
/etc/shadow 檔案以雜湊或加密格式儲存使用者的實際密碼。再次強調,各欄以冒號分隔,格式如下
$ sudo cat /etc/shadow tecmint:$6$iavr8PAxxnWmfh6J$iJeiuHeo5drKWcXQ.BFGUrukn4JWW7j4cwjX7uhH1:18557:0:99999:7:::
這個檔案有 9 個欄位。從最左邊開始,我們有:
- 使用者名稱:這是您的登入名稱
- 使用者的密碼。這是以雜湊或加密格式呈現的
- 上次更改密碼的日期。這是自從密碼更改以來計算的日期,計算自大約 1970 年 1 月 1 日的時刻(Epoch)
- 最小密碼年齡。這是必須過去的最小天數,才能設定一個密碼
- 最大密碼年齡。這是必須更改密碼的最大天數
- 警告期間。正如名稱所示,這是密碼即將過期之前的幾天,用戶將被通知密碼即將到期
- 閒置期間。密碼過期後幾天,使用者帳戶將被停用,而使用者未更改密碼
- 到期日期。使用者帳戶到期的日期
- 保留欄位。 – 這是留空白的
如何在 Linux 系統中新增使用者
在 Debian 和 Ubuntu 發行版中,使用 adduser 實用程序來添加用戶。
語法相當簡單直觀。
# adduser username
例如,要添加名為 bob 的用戶,運行以下命令:
# adduser bob
從輸出中,創建了一個名為「bob」的用戶,並將其添加到一個新創建的名為「bob」的組中。此外,系統還創建了一個主目錄並復制了配置文件。
之後,系統將提示您輸入新用戶的密碼並進行確認。殼還會提示您輸入用戶的全名和其他可選信息,例如房間號和工作電話。這些信息並非必填,因此可以跳過。最後,按 ‘Y’
確認提供的信息正確。

對於 RHEL 和 CentOS 系統,請使用 useradd 命令。
# useradd bob
接下來,使用以下 passwd 命令為用戶設置密碼。
# passwd bob

如何在 Linux 系統中刪除用戶
要從系統中刪除用戶,建議首先按如下所示鎖定用戶的登錄權限。
# passwd -l bob
如果您願意,可以使用 tar 命令 備份用戶的文件。
# tar -cvf /backups/bob-home-directory.tar.bz2 /home/bob

最後,要刪除使用者以及其家目錄,請使用以下deluser命令:
# deluser --remove-home bob

此外,您也可以使用userdel命令。
# userdel -r bob
這兩個命令會完全刪除使用者以及其家目錄。
結論
以上是有關使用者管理命令的概述,尤其在辦公環境中管理使用者帳戶時將會非常有用。不妨不時嘗試,以磨練您的系統管理技能。
Source:
https://www.tecmint.com/linux-user-account-management/