UNIX 用户管理 - Unix

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

  1. Root 账号: 这也被称为超级用户,并有完整的和不受约束的控制系统。一个超级用户可以运行任何命令,没有任何限制。该用户应承担作为一个系统管理员。

  2. System 账号: 系统帐户是那些需要特定系统组件,例如电子邮件帐户和sshd的账户的操作。这些账户通常需要在您的系统上的一些特定功能,任何修改系统可能会受到不好的影响。

  3. User 账号: 用户帐户提供交互式访问系统的用户和用户组。一般使用者通常分配给这些帐户,通常有有限的访问关键系统文件和目录。

UNIX支持组帐户的概念逻辑分组多个账户。每个帐户将任何组帐户的一部分。 Unix群组中起着重要的作用,在处理文件的权限和流程管理。

管理用户和组:

有三个主要的用户管理文件:

  1. /etc/passwd: 保持用户帐户和密码信息。这个文件包含了大多数的Unix系统上的账户信息。

  2. /etc/shadow: 相应的帐户保存加密口令。并非所有的系统支持此文件。

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

  4. /etc/gshadow: 此文件包含安全组的帐户信息。

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

以下是大多数Unix系统上可用来创建和管理帐户和组的命令:

命令 描述
useradd Adds accounts to the system.
usermod Modifies account attributes.
userdel Deletes accounts from the system.
groupadd Adds groups to the system.
groupmod Modifies group attributes.
groupdel Removes groups from the system.

您可以使用联机帮助帮助这里提到的每个命令的语法检查完成。

创建一个组

您需要创建组,然后才能再创建任何帐户,系统中必须使用现有组。你将不得不在 /etc/groups文件中列出的所有组。

所有默认组将系统帐户的特定群体,它是不推荐使用普通帐户。所以语法来创建一个新的帐户:

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

下面是详细的参数:

选项 描述
-g GID The numerical value of the group's ID.
-o This option permits to add group with non-unique GID
-r This flag instructs groupadd to add a system account
-f This option causes to just exit with success status if the specified group already exists. With -g, if specified GID already exists, other (unique) GID is chosen
groupname Actaul group name to be created.

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

以下示例将创建开发组的默认值,这是非常可以接受的大多数管理员。

$ groupadd developers

修改组:

要修改组,使用groupmod语法:

$ groupmod -n new_modified_group_name old_group_name

要改变developers_2 组的名称到开发组,输入:

$ groupmod -n developer developer_2

这里显示如何改变GID为545:

$ groupmod -g 545 developer

删除组:

要删除现有的组,所有你需要的是一个命令groupdel命令和组名。要删除的 financial 组,该命令是:

$ groupdel developer

这将删除组,没有任何与该组相关的文件。这些文件是由他们的所有者仍然可以访问。

创建一个帐户

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

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

下面是详细的参数:

Option 描述
-d homedir Specifies home directory for the account.
-g groupname Specifies a group account for this account.
-m Creates the home directory if it doesn't exist.
-s shell Specifies the default shell for this account.
-u userid You can specify a user id for this account.
accountname Actual account name to be created

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

下面的例子将创建一个帐户 mcmohd 其主目录设置到 /home/mcmohd 和开发组。该用户将有Korn Shell的分配给它。

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

发出上述命令前,请确保你已经有开发组使用groupadd的命令创建。

一旦创建一个帐户,你可以设置其密码,使用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选项。您可以删除的主目录,在以后的时间。