Unix/Linux - 用户管理



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

Unix系统上有三种类型的账户:

根账户

这也被称为超级用户,并且对系统拥有完全且不受限制的控制权。超级用户可以运行任何命令而没有任何限制。此用户应被视为系统管理员。

系统账户

系统账户是系统特定组件操作所需的账户,例如邮件账户和sshd账户。这些账户通常需要用于系统上的某些特定功能,并且对它们的任何修改都可能对系统产生不利影响。

用户账户

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

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

管理用户和组

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

  • /etc/passwd - 保存用户账户和密码信息。此文件保存了有关Unix系统上账户的大部分信息。

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

  • /etc/group - 此文件包含每个账户的组信息。

  • /etc/gshadow - 此文件包含安全的组账户信息。

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

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

序号 命令及描述
1

useradd

向系统添加账户

2

usermod

修改账户属性

3

userdel

从系统中删除账户

4

groupadd

向系统添加组

5

groupmod

修改组属性

6

groupdel

从系统中删除组

您可以使用手册页帮助检查此处提到的每个命令的完整语法。

创建组

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

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

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

下表列出了参数:

序号 选项及描述
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

以下是如何将financial的GID更改为545:

$ groupmod -g 545 developer

删除组

我们现在将了解如何删除组。要删除现有组,您只需要groupdel命令组名即可。要删除financial组,命令为:

$ 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选项。您可以根据需要在以后删除主目录。

广告