- Unix / Linux 初学者
- Unix / Linux - 主页
- Unix / Linux - 入门
- Unix / Linux - 文件管理
- Unix / Linux - 目录
- Unix / Linux - 文件权限
- Unix / Linux - 环境
- Unix / Linux - 基本实用程序
- Unix / Linux - 管道和过滤器
- Unix / Linux - 进程
- Unix / Linux - 通信
- Unix / Linux - vi 编辑器
- Unix/Linux Shell 编程
- Unix / Linux - Shell 脚本
- Unix / Linux - 什么是 Shell?
- Unix / Linux - 使用变量
- Unix / Linux - 特殊变量
- Unix / Linux - 使用数组
- Unix / Linux - 基本运算符
- Unix / Linux - 决策
- Unix / Linux - Shell 循环
- Unix / Linux - 循环控制
- Unix / Linux - Shell 替换
- Unix / Linux - 引用机制
- Unix / Linux - IO 重定向
- Unix / Linux - Shell 函数
- Unix / Linux - 联机帮助页
Unix / Linux - 用户管理
在本章中,我们将详细讨论 Unix 中的用户管理。
Unix 系统上有三种类型的帐户 -
根账户
这也称为超级用户,可以完全且不受限制地控制系统。超级用户可以不受任何限制地运行任何命令。该用户应被假定为系统管理员。
系统账户
系统帐户是操作特定于系统的组件所需的帐户,例如邮件帐户和sshd帐户。系统上的某些特定功能通常需要这些帐户,对它们的任何修改都可能对系统产生不利影响。
用户帐户
用户帐户为用户和用户组提供对系统的交互式访问。普通用户通常被分配给这些帐户,并且通常对关键系统文件和目录具有有限的访问权限。
Unix 支持组帐户的概念,该概念在逻辑上对多个帐户进行分组。每个帐户都将是另一个组帐户的一部分。Unix 组在处理文件权限和进程管理方面发挥着重要作用。
管理用户和组
有四个主要的用户管理文件 -
/etc/passwd - 保存用户帐户和密码信息。该文件包含有关 Unix 系统上帐户的大部分信息。
/etc/shadow - 保存相应帐户的加密密码。并非所有系统都支持此文件。
/etc/group - 该文件包含每个帐户的组信息。
/etc/gshadow - 该文件包含安全组帐户信息。
使用cat命令检查上述所有文件。
下表列出了大多数 Unix 系统上可用于创建和管理帐户和组的命令 -
先生。 | 命令与说明 |
---|---|
1 |
用户添加 将帐户添加到系统 |
2 |
用户模式 修改账户属性 |
3 |
用户删除 从系统中删除帐户 |
4 |
组添加 将组添加到系统 |
5 |
组模式 修改组属性 |
6 |
组删除 从系统中删除组 |
您可以使用联机帮助页检查此处提到的每个命令的完整语法。
创建群组
我们现在将了解如何创建一个组。为此,我们需要在创建任何帐户之前创建组,否则,我们可以利用系统中的现有组。我们在/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 |
团队名字 实际创建的组名 |
如果不指定任何参数,系统将使用默认值。
下面的示例创建了一个具有默认值的开发人员组,这对于大多数管理员来说都是可以接受的。
$ 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 命令和组名称。要删除金融组,命令是 -
$ groupdel developer
这仅删除该组,而不删除与该组关联的文件。这些文件的所有者仍然可以访问这些文件。
创建一个帐户
让我们看看如何在 Unix 系统上创建新帐户。以下是创建用户帐户的语法 -
useradd -d homedir -g groupname -m -s shell -u userid accountname
下表列出了参数 -
先生。 | 选项和说明 |
---|---|
1 |
-d 主目录 指定帐户的主目录 |
2 |
-g 组名 指定该帐户的组帐户 |
3 |
-m 如果主目录不存在则创建它 |
4 |
-s 外壳 指定该帐户的默认 shell |
5 |
-u 用户ID 您可以为此帐户指定一个用户 ID |
6 |
帐户名称 实际创建的账户名 |
如果不指定任何参数,系统将使用默认值。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选项。您可以稍后根据需要删除主目录。