LFCA:学习用户账户管理 – 第5部分

作为Linux系统管理员,您将负责确保组织中所有IT操作的顺畅进行。鉴于一些IT操作是相互交织在一起的,系统管理员通常会扮演多重角色,包括数据库管理员或网络管理员。

本文是LFCA系列第5部分,在本部分中,您将了解Linux系统中用于创建和管理用户的一般系统管理命令。

Linux中的用户帐户管理

Linux系统管理员的主要职责之一是在Linux系统中创建和管理用户。每个用户帐户都有两个唯一标识符:用户名用户IDUID)。

基本上,Linux中有3个主要用户类别:

Root用户

root用户是Linux系统中最强大的用户,通常在安装过程中创建。root用户在Linux系统或任何其他类UNIX操作系统中拥有绝对权限。用户可以访问所有命令、文件和目录,并根据自己的喜好修改系统。

根用户可以更新系统,安装和卸载包,添加或删除其他用户,授予或撤销权限,以及执行任何其他系统管理任务,而没有任何限制。

根用户几乎可以在系统上做任何事。Linux和UNIX-like系统的前提是你清楚地知道你在系统上做什么。话说回来,根用户很容易破坏系统。你只要执行一个致命的命令,系统就会化为灰烬。

因此,以根用户身份运行命令是强烈不鼓励的。相反,良好的实践要求你应该配置一个sudo用户。那就是将sudo权限授予普通用户以执行某些管理任务,并限制一些任务仅限根用户执行。

普通用户

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系统中的用户信息存储在以下文件中:

  • 《diy12>/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

输出确认用户属于两个组:tecmintsudo

tecmint : tecmint sudo

/etc/gshadow文件

该文件包含组账户的加密或“shadowed”密码,出于安全原因,普通用户无法访问该文件。只有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日。
  • 最小密码年龄。这是在设置密码之前必须经过的最小天数。
  • 最大密码年龄。这是在密码必须更改的最大天数之后。
  • 警告期。如名称所示,这是在密码到期前几天用户会收到即将到期的通知的天数。
  • 非活动期。在密码过期后,用户账户被禁用且用户未更改密码的天数。
  • 过期日期。用户账户的到期日期。
  • 保留字段

如何在Linux系统中添加用户

对于DebianUbuntu发行版,使用adduser工具来添加用户。

该工具的语法非常简单直观。

# adduser username

例如,要添加一个名为bob的用户,可以运行以下命令

# adduser bob

从输出结果来看,创建了一个名为“bob”的用户,并将其添加到一个名为“bob”的新组中。此外,系统还会创建一个家目录,并将配置文件复制到该目录中。

之后,系统会提示您为新用户设置密码,并确认。外壳还会提示您输入用户的完整姓名和其他可选信息,如房间号和工作电话。这些信息实际上并不必要,因此可以跳过。最后,按“Y”确认提供的信息是否正确。

Add User in Ubuntu

对于RHEL基于CentOS的系统,请使用useradd命令。

# useradd bob

接下来,使用passwd命令为新用户设置密码,操作如下。

# passwd bob
Add User in CentOS

如何在Linux系统中删除用户

要从不系统中删除用户,建议首先锁定用户,使其无法登录系统,如所示。

# passwd -l bob

如果您愿意,可以使用tar命令备份用户的文件。

# tar -cvf /backups/bob-home-directory.tar.bz2  /home/bob
Lock User Account in Linux

最后,要删除用户以及其家目录,可以使用以下deluser命令:

# deluser --remove-home bob
Delete User in Linux

此外,您也可以使用userdel命令,如下所示。

# userdel -r bob

这两个命令可以完全删除用户以及其家目录。

结论

这是有关用户管理命令的概述,特别是在管理办公环境中的用户账户时会非常有用。不妨不时尝试一下,以提高您的系统管理技能。

Source:
https://www.tecmint.com/linux-user-account-management/