Unix / Linux - 用户管理

在本章中,我们将详细讨论 Unix 中的用户管理。

Unix系统上的账户分为三种 −

Root 账户

这也称为超级用户,可以完全不受限制地控制系统。 超级用户可以不受任何限制地运行任何命令。 该用户应被假定为系统管理员。

系统账户

系统帐户是系统特定组件运行所需的帐户,例如邮件帐户和 sshd 帐户。 这些帐户通常是您系统上某些特定功能所必需的,对它们的任何修改都可能对系统产生不利影响。

用户账户

用户帐户为用户和用户组提供对系统的交互式访问。 一般用户通常被分配到这些帐户,并且通常对关键系统文件和目录具有有限的访问权限。

Unix 支持Group Account 的概念,它在逻辑上将多个帐户分组。 每个帐户都是另一个组帐户的一部分。 Unix 组在处理文件权限和进程管理方面起着重要作用。


管理用户和组

主要有四个用户管理文件 −

  • /etc/passwd − 保留用户帐号和密码信息。 该文件包含有关 Unix 系统帐户的大部分信息。

  • /etc/shadow − 持有相应账户的加密密码。 并非所有系统都支持此文件。

  • /etc/group − 该文件包含每个帐户的组信息。

  • /etc/gshadow − 此文件包含安全组帐户信息。

使用 cat 命令检查以上所有文件。

下表列出了大多数 Unix 系统上可用于创建和管理帐户和组的命令 −

您可以使用联机帮助来检查此处提到的每个命令的完整语法。


创建群组

我们现在将了解如何创建群组。 为此,我们需要在创建任何帐户之前创建组,否则,我们可以利用系统中的现有组。 我们在 /etc/groups 文件中列出了所有组。

所有默认组都是系统帐户特定组,不建议将它们用于普通帐户。 因此,以下是创建新组帐户的语法 −

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

下表列出了参数 −

序号 命令 & 描述
1

useradd

向系统添加帐户

2

usermod

修改账户属性

3

userdel

从系统中删除帐户

4

groupadd

向系统添加组

5

groupmod

修改组属性

6

groupdel

从系统中删除组

序号 选项 & 描述
1

-g GID

群组ID的数值

2

-o

此选项允许添加具有非唯一 GID 的组

3

-r

此标志指示groupadd 添加系统帐户

4

-f

如果指定的组已经存在,这个选项会导致以成功状态退出。 使用 -g,如果指定的 GID 已经存在,则选择其他(唯一)GID

5

groupname

要创建的实际组名

如果您不指定任何参数,系统将使用默认值。

以下示例使用默认值创建了一个 developers 组,这对于大多数管理员来说是非常容易接受的。

$ groupadd developers

修改组

要修改组,请使用 groupmod 语法 −

$ groupmod -n new_modified_group_name old_group_name

要将 developers_2 组名称更改为 developer,请键入 −

$ groupmod -n developer developer_2

以下是将财务 GID 更改为 545 的方法 −

$ groupmod -g 545 developer

删除组

我们现在将了解如何删除组。 要删除现有组,您只需要groupdel 命令组名。 要删除 developer 组,命令是 −

$ groupdel developer

这只会删除组,不会删除与该组关联的文件。 这些文件的所有者仍然可以访问这些文件。


创建账户

让我们看看如何在您的 Unix 系统上创建一个新帐户。 以下是创建用户帐户的语法 −

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

下表列出了参数 −

序号 选项 & 描述
1

-d homedir

指定帐户的主目录

2

-g groupname

为此帐户指定一个组帐户

3

-m

如果主目录不存在则创建

4

-s shell

指定此帐户的默认 shell

5

-u userid

您可以为此帐户指定一个用户 ID

6

accountname

要创建的实际账户名

如果您不指定任何参数,系统将使用默认值。 useradd 命令修改 /etc/passwd/etc/shadow/etc/group 文件并创建主目录。

以下是创建帐户mcmohd 的示例,将其主目录设置为 /home/mcmohd,将组设置为developers. 将为该用户分配 Korn Shell。

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

在发出上述命令之前,请确保您已经使用 groupadd 命令创建了 developers 组。

创建帐户后,您可以使用 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 选项。 您可以在以后根据需要删除主目录。