Unix 简明教程

Unix / Linux - User Administration

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

Unix 系统上有三种类型的帐户 -

Root account

这也是 superuser ,将拥有对系统的完整和不受限制的控制。超级用户可以在没有任何限制的情况下运行任何命令。此用户应被假定为系统管理员。

System accounts

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

User accounts

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

Unix 支持组账户的概念,其逻辑上分组了多个账户。每个账户都将成为另一个组账户的一部分。Unix 组在处理文件权限和进程管理中扮演着重要角色。

Managing Users and Groups

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

  1. /etc/passwd − 保存用户账户和密码信息。此文件包含有关 Unix 系统上账户的大部分信息。

  2. /etc/shadow − 保存对应账户的加密密码。并非所有系统都支持此文件。

  3. /etc/group − 此文件包含每个账户的组信息。

  4. /etc/gshadow − 此文件包含安全组账户信息。

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

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

Sr.No.

Command & Description

1

useradd 将账户添加到系统

2

usermod Modifies account attributes

3

userdel 从系统中删除账户

4

groupadd 将组添加到系统

5

groupmod Modifies group attributes

6

groupdel 从系统中删除组

您可以使用 Manpage Help 查看此处提到的每个命令的完整语法。

Create a Group

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

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

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

下表列出了参数 −

Sr.No.

Option & Description

1

-g GID 组 ID 的数值

2

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

3

-r 此标志指示 groupadd 添加系统账户

4

*-f *如果指定的组已存在,则此选项仅退出并显示成功状态。如果指定 GID 已存在,则会选择其他(唯一)GID

5

groupname 要创建的实际组名

如果您未指定任何参数,则系统会使用默认值。

以下示例使用大多数管理员都极易接受的默认值创建了 developers 组。

$ groupadd developers

Modify a Group

要修改组,请使用 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

Delete a Group

我们现在将了解如何删除组。要删除现有组,您只需要 groupdel commandgroup name 。要删除 financial 组,命令为 −

$ groupdel developer

这仅删除组,而不删除与此组关联的文件。文件仍可由其所有者访问。

Create an Account

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

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

下表列出了参数 −

Sr.No.

Option & Description

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 时,它会给你一个更改密码选项,前提是你是超级用户。否则,你只能使用同一命令更改你的密码,但不指定你的帐号名称。

Modify an Account

usermod 命令让你能够从命令行更改现有帐号。它使用与 useradd 命令相同的参数,加上 -l 参数,它允许你更改帐号名称。

例如,要把帐号名称 mcmohd 更改为 mcmohd20 ,并相应更改主目录,你需要发出以下命令:

$ usermod -d /home/mcmohd20 -m -l mcmohd mcmohd20

Delete an Account

userdel 命令可以用来删除现有用户。如果不谨慎使用,这是一个非常危险的命令。

命令 .r 只有一个可用的参数或选项,用于移除此帐号的主目录和邮件文件。

例如,要删除帐号 mcmohd20,请发出以下命令:

$ userdel -r mcmohd20

如果你想保留主目录以备将来用,请省略 -r 选项。你可以在以后的需要时删除主目录。