Unix / Linux - 用户管理
在本章中,我们将详细讨论 Unix 中的用户管理。
Unix系统上的账户分为三种 −
Root 账户
这也称为超级用户,可以完全不受限制地控制系统。 超级用户可以不受任何限制地运行任何命令。 该用户应被假定为系统管理员。
系统账户
系统帐户是系统特定组件运行所需的帐户,例如邮件帐户和 sshd 帐户。 这些帐户通常是您系统上某些特定功能所必需的,对它们的任何修改都可能对系统产生不利影响。
用户账户
用户帐户为用户和用户组提供对系统的交互式访问。 一般用户通常被分配到这些帐户,并且通常对关键系统文件和目录具有有限的访问权限。
Unix 支持Group Account 的概念,它在逻辑上将多个帐户分组。 每个帐户都是另一个组帐户的一部分。 Unix 组在处理文件权限和进程管理方面起着重要作用。
管理用户和组
主要有四个用户管理文件 −
/etc/passwd − 保留用户帐号和密码信息。 该文件包含有关 Unix 系统帐户的大部分信息。
/etc/shadow − 持有相应账户的加密密码。 并非所有系统都支持此文件。
/etc/group − 该文件包含每个帐户的组信息。
/etc/gshadow − 此文件包含安全组帐户信息。
使用 cat 命令检查以上所有文件。
下表列出了大多数 Unix 系统上可用于创建和管理帐户和组的命令 −
序号 | 命令 & 描述 |
---|---|
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 b>. 将为该用户分配 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 选项。 您可以在以后根据需要删除主目录。