Unix 简明教程
Unix / Linux - User Administration
在本章中,我们将详细讨论 Unix 中的用户管理。
Unix 系统上有三种类型的帐户 -
User accounts
用户账户为用户及其用户组提供对系统的交互式访问权限。一般用户通常被分配到这些账户,并且通常对关键系统文件和目录的访问权限有限。
Unix 支持组账户的概念,其逻辑上分组了多个账户。每个账户都将成为另一个组账户的一部分。Unix 组在处理文件权限和进程管理中扮演着重要角色。
Managing Users and Groups
有四个主要的用户管理文件 −
-
/etc/passwd − 保存用户账户和密码信息。此文件包含有关 Unix 系统上账户的大部分信息。
-
/etc/shadow − 保存对应账户的加密密码。并非所有系统都支持此文件。
-
/etc/group − 此文件包含每个账户的组信息。
-
/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 command 和 group 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 时,它会给你一个更改密码选项,前提是你是超级用户。否则,你只能使用同一命令更改你的密码,但不指定你的帐号名称。